背景描述:
以前,我们需要输入很多 docker 命令来 build 和 push image,现在开发人员只需要填写自动 build 和 push image所需的文档。主要流程如下:
1 如何填写配置文件
1.1 填写 Dockerfile 和 .dockerignore 文件
- 将它们都放到一个特殊的文件夹中,例如:“/var/local/preview_dockerfile”,并将路径放到配置文件“Dockerfile”中
- Dockerfile 中要复制的文件和 “.dockerignore”文件要忽略的文件必须和 Dockerfile 和 .dockerignore 在同一目录下
- 文件命名必须标准化:例如 "previwe.dockerfile" 的命名方法是错误的,如果你这样做,docker 会找不到你的 dockerfile,你可以给它们一个统一的名字,比如:Dockerfile
1.2 找到需要复制到图像的路径
- 将所有复制路径放入配置文件“Directory location”,如:“/var/preview-container/bin”
- 将 dockerfile 的位置放到配置文件“Directory destination”中
- 当构建代码运行时,它将复制所有在“Directory location”目录中的文件到“Directory destination”文件夹去,这将确保所有复制文件夹与dockerfile 在同一目录中(这是使用 dockerfile 的规则),如果没有,当构建代码创建映像使用 dockerfile 时,它会告诉我们找不到复制文件夹。
1.3 在 ~/.aws/credentials 文件夹中添加 AWS 配置信息
这一步是确保可以使用不同的 aws 帐户在特定的 aws 存储库中推送映像。例如,我们可以在文件中定义“dev”:
[default]
aws_access_key_id = *******
aws_secret_access_key = ******
[dev]
aws_access_key_id = ******
aws_secret_access_key = ******
1.4 添加 image 将被推送的仓库名
将 1.3 中定义的 repositoty URI 和 AWS 用户名放在配置文件的“AWS ECR Repository”中,例如:
Push:
"AWS ECR Repository":
"AWS ECR Repository 1": {"Profile": default,"repo":739762310319.dkr.ecr.us-east-1.amazonaws.com/hello-world}
"AWS ECR Repository 2": {"ProDfile": dev,"repo":739762310319.dkr.ecr.us-east-1.amazonaws.com/build-test}
1.5 配置文件示例
Build:
"Dockerfile": /var/local/preview_dockerfile
"Docker imageName": atlas-preview-build-test
"Docker tag": preview-test-liufang
"Port": {'100/tcp': 1080}
"Copy":
"Directory location 1": /var/preview-container/bin
"Directory destination": /var/local/preview_dockerfile
Push:
"AWS ECR Repository":
"AWS ECR Repository 1": {"Profile": default,"repo":739762310319.dkr.ecr.us-east-1.amazonaws.com/hello-world}
"AWS ECR Repository 2": {"Profile": dev,"repo":739762310319.dkr.ecr.us-east-1.amazonaws.com/build-test}