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.