geerlingguy.ecr_container_build
Ansible 角色:ECR 容器构建
一个 Ansible 角色,用于构建 Docker 容器镜像并(可选)将其推送到 AWS ECR 仓库。
要求
- Docker
- Pip 包:
boto3
,docker
角色变量
可用的变量如下,默认值见 defaults/main.yml
:
ecr_image_src_dir: ../my-project
ecr_image_name: namespace/my-project
包含 Dockerfile 和所需资源的源目录,以及构建的 docker 镜像的名称(通常形式为 namespace/project
)。
ecr_image_buildargs: {}
构建 Docker 镜像时传递给 docker_image
模块的构建参数。参数应作为键值对对象传递,例如 { name: value, name2: value2 }
。
ecr_image_tags: ['latest']
应用于推送到 ECR 的最终镜像的标签。
ecr_login_required: false
如果您将 ECR 用作容器构建的源(例如 Dockerfile
中的 FROM
),请将其设置为 true
。
ecr_push: true
是否将构建的镜像推送到 ECR。如果您只是测试镜像构建部分或无法连接到 ECR,请设置为 false
。
ecr_region: us-east-1
ecr_account_id: '123456789012'
ecr_url: "{{ ecr_account_id }}.dkr.ecr.{{ ecr_region }}.amazonaws.com"
ECR 的 AWS 账户详情。
依赖
无。
示例剧本
在本地构建(假设您已安装 Docker CE 和 docker
pip 包):
---
- hosts: localhost
connection: local
gather_facts: false
vars:
ecr_image_src_dir: ../my-project
ecr_image_name: namespace/my-project
ecr_image_tags: ['latest','1.2.3']
ecr_account_id: '123456789012'
pip_install_packages: ['docker']
roles:
- role: geerlingguy.ecr_container_build
在远程服务器上构建:
---
- hosts: localhost
connection: local
gather_facts: false
vars:
ecr_image_src_dir: ../my-project
ecr_image_name: namespace/my-project
ecr_image_tags: ['latest','1.2.3']
ecr_account_id: '123456789012'
pip_install_packages: ['docker']
roles:
- role: geerlingguy.docker
- role: geerlingguy.pip
- role: geerlingguy.ecr_container_build
许可证
MIT / BSD
作者信息
此角色由 Jeff Geerling 创建于 2018 年,他是 Ansible for DevOps 的作者。
安装
ansible-galaxy install geerlingguy.ecr_container_build
许可证
mit
下载
24.2k
拥有者
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns