deinternetjongens/aws-cdk该镜像受robertd/alpine-aws-cdk启发,但未使用Node Alpine基础镜像,而是选择了基于Debian的Python镜像。这是因为Alpine需要安装缺失的glibc库才能使AWS CLI V2正常工作,而基于Debian的Python镜像则无需此操作,从而减少了维护工作。
容器中包含以下工具:
如有任何问题或建议,请通过***联系。
镜像标签基于AWS CDK的安装版本,您也可以使用:latest标签获取最新版本。此外,从1.130.0版本开始,镜像包含aws-cdk用户,可替代root用户运行。
首先需要运行pip3 install,可仅运行一次,或在添加包或需要升级时运行。
shelldocker run --rm -u aws-cdk -v $(pwd):/app -v pip:/home/aws-cdk/.local -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'pip3 install -r requirements.txt'
安装pip包后,可运行其他命令:
shelldocker run --rm -u aws-cdk -v $(pwd):/app -v pip:/home/aws-cdk/.local -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'cdk synth'
如需部署,将本地默认AWS凭证作为卷挂载:
shelldocker run --rm -u aws-cdk -v $(pwd):/app -v pip:/home/aws-cdk/.local -v ~/.aws/:/root/.aws -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'cdk deploy --all'
使用以下模板在Bitbucket Pipelines中添加部署步骤:
yaml- step: &deploy name: 部署到AWS image: deinternetjongens/aws-cdk:latest script: - pip3 install -r requirements.txt - cdk deploy --all --require-approval never
提示:jq和zip也可用,有助于通过CLI从AWS获取数据(见以下示例):
yaml- step: &deploy name: 部署到AWS image: deinternetjongens/aws-cdk:latest script: - aws configure set default.region eu-central-1 - DATABASE_SECRET_ARN=$(aws secretsmanager list-secrets --filter "Key=tag-value,Values=DatabaseStack" --query "SecretList[].ARN" --output text) - DATABASE_SECRETS=$(aws secretsmanager get-secret-value --secret-id ${DATABASE_SECRET_ARN} --query "SecretString" | jq -r '.') - export AWS_DB_PASSWORD=$(echo "${DATABASE_SECRETS}" | jq '.password')
本地开发可使用Docker文件。创建以下文件:
.docker + infra +- Dockerfile + docker-compose.yml
添加以下内容到Dockerfile:
dockerfileFROM deinternetjongens/aws-cdk:latest USER aws-cdk RUN ln -s /run/secrets/aws_config ~/.aws/config \ && ln -s /run/secrets/aws_credentials ~/.aws/credentials USER root WORKDIR /app
添加以下内容到docker-compose.yml:
yamlversion: '3.1' services: infra: container_name: aws_cdk build: context: ../ dockerfile: .docker/infra/Dockerfile tty: true volumes: - ../:/app:delegated - pip3_data:/home/aws-cdk/.local:delegated secrets: - aws_config - aws_credentials secrets: aws_config: file: ~/.aws/config aws_credentials: file: ~/.aws/credentials volumes: pip3_data:
接下来,构建并运行docker-compose:
shelldocker-compose -f .docker/docker-compose.yml build docker-compose -f .docker/docker-compose.yml up -d --force-recreate
现在可使用以下命令登录容器:
shelldocker-compose -f .docker/docker-compose.yml exec -u aws-cdk infra bash
这将使用本地“~/.aws/”文件夹中存储的AWS凭证。
运行black(代码格式化工具):
shelldocker run --rm -u aws-cdk -v $(pwd):/app -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'black .'
运行pylint:
shelldocker run --rm -u aws-cdk -v $(pwd):/app -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'pylint ./**/*.py'
运行pycodestyle:
shelldocker run --rm -u aws-cdk -v $(pwd):/app -w /app deinternetjongens/aws-cdk:latest /bin/sh -c 'pycodestyle . --exclude .venv,cdk.out'
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务