geerlingguy.ecr_container_build

Ansible 角色:ECR 容器构建

CI

一个 Ansible 角色,用于构建 Docker 容器镜像并(可选)将其推送到 AWS ECR 仓库。

要求

  • Docker
  • Pip 包:boto3docker

角色变量

可用的变量如下,默认值见 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 的作者。

关于项目

ECR docker image build and push management role.

安装
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