Quais são as práticas recomendadas para implantar o docker-compose usando o Ansible?

7

O Ansible é usado para implantar o docker-compose em um sistema e, posteriormente, iniciar o contêiner.

Quando o ansible é executado no sistema local, o arquivo docker-compose é implantado usando o Ansible.

Quando o código é enviado para bitbucket, o conteúdo do arquivo é:

../../../../docker-compose.yml

e o CI também implementa isso no sistema.

Estrutura

project/ansible

project/docker-compose.yml

project/ansible/roles/role/files/docker-compose.yml

Discussão

Para impedir que o docker-compose.yml precise ser alterado em dois locais, um link simbólico foi criado, mas isso parece ser ignorado pelo bitbucket, pois o link em vez do conteúdo reside neste arquivo.

Estas perguntas e respostas indicam que:

Os dados referenciados pelo link simbólico não são armazenados no repositório.

e criar um link simbólico para evitar duplicação de código no docker-compose.yml parece causar o problema.

030
fonte

Respostas:

2

Em vez de usar um link simbólico que será armazenado como está no BitBucket, pode-se usar:

- name: Copy docker-compose.yml
  copy:
    src: ../../../../docker-compose.yml
    dest: /path/to/docker-compose.yml
030
fonte