Ansible được sử dụng để triển khai docker-compose trên một hệ thống và sau đó khởi động container.
Khi ansible chạy từ hệ thống cục bộ, tệp soạn thảo docker được triển khai bằng Ansible.
Khi mã được đẩy lên bitbucket, nội dung tệp là:
../../../../docker-compose.yml
và CI cũng triển khai điều này trên hệ thống.
Kết cấu
project/ansible
project/docker-compose.yml
project/ansible/roles/role/files/docker-compose.yml
Thảo luận
Để ngăn chặn docker-compose.yml cần được thay đổi ở hai nơi, một liên kết tượng trưng đã được tạo, nhưng dường như bitbucket bị bỏ qua vì liên kết thay vì nội dung nằm trong tệp này.
Câu hỏi và trả lời này chỉ ra rằng:
Dữ liệu được tham chiếu bởi symlink không được lưu trữ trong kho lưu trữ.
và tạo một liên kết tượng trưng để tránh trùng lặp mã trong docker-compose.yml dường như gây ra sự cố.