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 и все необходимые ресурсы, а также имя изображения (обычно в формате namespace/project
) для собираемого Docker-образа.
ecr_image_buildargs: {}
Аргументы сборки, которые нужно передать модулю docker_image
при сборке Docker-образа. Аргументы должны передаваться в виде объекта с парами "ключ-значение", например, { name: value, name2: value2 }
.
ecr_image_tags: ['latest']
Теги, которые будут применены к конечному изображению, отправленному в ECR.
ecr_login_required: false
Установите это значение в true
, если вы используете ECR как источник для сборки вашего контейнера (например, FROM
в Dockerfile
).
ecr_push: true
Указывает, нужно ли отправлять собранный образ в ECR. Установите в false
, если вы просто тестируете часть сборки образа или не можете подключиться к ECR.
ecr_region: us-east-1
ecr_account_id: '123456789012'
ecr_url: "{{ ecr_account_id }}.dkr.ecr.{{ ecr_region }}.amazonaws.com"
Данные учетной записи AWS для ECR.
Зависимости
Отсутствуют.
Пример плейбука
Сборка локально (при условии, что у вас уже установлен 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
Информация об авторе
Эта роль была создана в 2018 году Джеффом Гирлингом, автором Ansible for DevOps.
ECR docker image build and push management role.
ansible-galaxy install geerlingguy/ansible-role-ecr_container_build