geerlingguy.ecr_container_build
Rol de Ansible: Construcción de Contenedores ECR
Un Rol de Ansible que instala y construye imágenes de contenedores Docker y (opcionalmente) las envía a los Repositorios ECR de AWS.
Requisitos
- Docker
- Paquetes de Pip:
boto3
,docker
Variables del Rol
Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml
):
ecr_image_src_dir: ../mi-proyecto
ecr_image_name: namespace/mi-proyecto
Un directorio de origen que contiene un Dockerfile y los recursos necesarios, y el nombre de la imagen (típicamente en la forma namespace/proyecto
) para la imagen de docker que se construye.
ecr_image_buildargs: {}
Argumentos de construcción para pasar al módulo docker_image
al construir la imagen de Docker. Los argumentos deben pasarse como un objeto con pares clave-valor, por ejemplo: { nombre: valor, nombre2: valor2 }
ecr_image_tags: ['latest']
Las etiquetas que se aplican a la imagen final que se envía a ECR.
ecr_login_required: false
Establece esto en true
si estás utilizando ECR como la fuente para tu construcción de contenedor (por ejemplo, FROM
en Dockerfile
).
ecr_push: true
Si se debe enviar la imagen construida a ECR. Establece en false
si solo estás probando la porción de construcción de la imagen o si no puedes conectarte a ECR.
ecr_region: us-east-1
ecr_account_id: '123456789012'
ecr_url: "{{ ecr_account_id }}.dkr.ecr.{{ ecr_region }}.amazonaws.com"
Detalles de la cuenta de AWS para ECR.
Dependencias
Ninguna.
Ejemplo de Playbook
Construyendo localmente (suponiendo que ya tienes Docker CE y el paquete docker
de pip instalado):
---
- hosts: localhost
connection: local
gather_facts: false
vars:
ecr_image_src_dir: ../mi-proyecto
ecr_image_name: namespace/mi-proyecto
ecr_image_tags: ['latest','1.2.3']
ecr_account_id: '123456789012'
pip_install_packages: ['docker']
roles:
- role: geerlingguy.ecr_container_build
Construyendo en un servidor remoto:
---
- hosts: localhost
connection: local
gather_facts: false
vars:
ecr_image_src_dir: ../mi-proyecto
ecr_image_name: namespace/mi-proyecto
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
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2018 por Jeff Geerling, autor de Ansible for DevOps.
ECR docker image build and push management role.
ansible-galaxy install geerlingguy.ecr_container_build