Was sind die Best Practices für die Bereitstellung von Docker-Compose mit Ansible?

7

Ansible wird verwendet, um Docker-Compose auf einem System bereitzustellen und anschließend den Container zu starten.

Wenn ansible vom lokalen System ausgeführt wird, wird die Docker-Compose-Datei mit Ansible bereitgestellt.

Wenn der Code an Bitbucket gesendet wird, lautet der Dateiinhalt:

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

und das CI stellt dies auch auf dem System bereit.

Struktur

project/ansible

project/docker-compose.yml

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

Diskussion

Um zu verhindern, dass die Datei docker-compose.yml an zwei Stellen geändert werden muss, wurde ein Symlink erstellt, der jedoch von bitbucket ignoriert wird, da sich der Link anstelle des Inhalts in dieser Datei befindet.

Diese Fragen und Antworten geben Folgendes an:

Die Daten, auf die der Symlink verweist, werden nicht im Repository gespeichert.

Das Erstellen eines Symlinks zur Vermeidung von Codeduplizierungen in docker-compose.yml scheint das Problem zu verursachen.

030
quelle

Antworten:

2

Anstatt einen Symlink zu verwenden, der wie in BitBucket gespeichert wird, könnte man Folgendes verwenden:

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