mergermarket/cdflow2-build-docker-ecrmergermarket/cdflow-build-docker-ecr 是 cdflow2 的构建插件,用于构建 Docker 镜像并将其推送到 AWS ECR。该镜像需配合支持 ECR 配置的 cdflow2 配置容器使用,例如 mergermarket/cdflow2-config-acuris。
docker login 以允许镜像推送Dockerfile 执行 docker build 创建 Docker 镜像docker push 将构建的镜像推送到 ECR 仓库image 发布元数据键,使生成的 Docker 镜像可通过 Terraform 使用(通过与 cdflow.yaml 中 builds 键下名称对应的 Terraform 映射变量,如 "docker")适用于基于 cdflow2 进行 CI/CD 流程的场景,需构建 Docker 镜像并推送到 AWS ECR。需配合支持 ECR 配置的 cdflow2 配置容器(如 mergermarket/cdflow2-config-acuris),以提供 ECR 仓库配置及相关凭证。
需使用支持 ECR 配置的 cdflow2 配置容器,例如 mergermarket/cdflow2-config-acuris。
cdflow2.yaml 配置示例以下示例使用 mergermarket/cdflow2-config-acuris 作为配置容器(仅适用于 Acuris 内部开发),该容器支持创建 ECR 仓库并将配置以环境变量形式提供给构建流程。
yamlversion: 2 config: image: mergermarket/cdflow2-config-acuris # 支持 ECR 配置的 cdflow2 配置容器 params: account_prefix: myaccountprefix # AWS 账户前缀 team: myteam # 团队名称 builds: docker: # 构建名称(对应 Terraform 变量名) image: mergermarket/cdflow2-build-docker-ecr # 当前构建插件镜像 terraform: image: hashicorp/terraform # Terraform 镜像
Dockerfile 示例项目根目录需包含 Dockerfile,用于构建目标镜像。以下为简单示例:
DockerfileFROM hello-world # 基础镜像,可替换为实际业务镜像
配置容器需在 configureRelease 钩子中确保 ECR 仓库存在,并通过以下环境变量提供必要配置:
| 环境变量 | 说明 |
|---|---|
ECR_REPOSITORY | ECR 仓库地址,格式为 <account-number>.dkr.ecr.<region>.amazonaws.com/<repo-name> |
AWS_ACCESS_KEY_ID | 用于 ECR 认证的 AWS 访问密钥 ID |
AWS_SECRET_ACCESS_KEY | 用于 ECR 认证的 AWS 密钥 |
AWS_SESSION_TOKEN | 临时凭证(如使用临时 IAM 角色时需提供) |
AWS_REGION | AWS 区域(如 us-east-1) |
当前支持此构建插件的配置容器为:
如需自定义配置容器以支持此构建插件,需确保容器在 configureRelease 阶段满足:
ECR_REPOSITORY、AWS 凭证等)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务