Containerised AWS CDK to ensure consistent local development and simple CD pipelines.
Run as a command using cdk
as entrypoint:
docker run --rm --entrypoint cdk contino/aws-cdk --version
Run as a shell and mount .aws
folder and current directory as volumes:
docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/opt/app contino/aws-cdk bash
Using docker-compose:
cdk:
image: contino/aws-cdk
env_file: .env
entrypoint: aws
working_dir: /opt/app
volumes:
- ~/.aws:/root/.aws
- .:/opt/app:rw
And run docker-compose run cdk --version
CDK Supports different languages to define your (re)usable assets.
This should work out of the box through package.json
and node_modules
, which
are automatically cached in your working directory.
This image ships with Python 3 installed. To cache installed cdk python packages,
site-packages
is exposed as a volume. This allows you to cache packages between
invocations:
cdk:
...
volumes:
- cdk-python:/usr/lib/python3.7/site-packages/
- ...
volumes:
cdk-python
Then, if you install e.g. aws-cdk.core
through pip (pip3 install aws-cdk.core
)
in a container, you won't have to install it again next time you start a new
container.
Not supported in this image yet
Update the AWS_CDK_VERSION
in both Makefile
and Dockerfile
. The run:
docker buildx create --use
make build
Docker Hub will automatically trigger a new build.
To update this container with a newer version of the AWS CDK:
- Update the Dockerfile with the new AWS CDK version number
- Update the Dockerfile with a new Alpine container version (if applicable)
- Update the Makefile with the new AWS CDK version number
- Submit pull request and get approved