Tôi cố gắng triển khai docker với ansible. Tôi có một vùng chứa cơ sở dữ liệu docker và trong vùng chứa khác là ứng dụng web của tôi và tôi cố gắng liên kết hai vùng chứa này. Vấn đề là thùng chứa cơ sở dữ liệu không có thời gian để cấu hình chính nó và một thùng chứa web đã được bắt đầu. Playbook ansible của tôi trông giống như:docker với sự chờ đợi an toàn cho cơ sở dữ liệu
...
- name: run mysql in docker container
docker:
image: "mysql:5.5"
name: database
env: "MYSQL_ROOT_PASSWORD=password"
state: running
- name: run application containers
docker:
name: "application"
image: "myapp"
ports:
- "8080:8080"
links:
- "database:db"
state: running
Cách xác định xem cơ sở dữ liệu có bắt đầu không? Tôi thử với module wait_for, nhưng điều đó không hiệu quả. Tôi không muốn thiết lập thời gian chờ, nó không phải là lựa chọn tốt cho tôi.
Trong khi tôi tin rằng '' 'wait_for''' là câu trả lời đúng, điều này dẫn đến một vấn đề khác: Cách tìm ra địa chỉ IP của vùng chứa docker? Vùng chứa cơ sở dữ liệu không liên kết với một cổng trên máy chủ cục bộ để đợi nó khởi động, chúng ta sẽ cần địa chỉ IP được gán cho vùng chứa bởi docker. Tôi hiện đang nhận IP bằng cách sử dụng '' 'docker inspection''' nhưng điều này vẫn chưa cung cấp kết quả. –
@Tobias có lẽ đăng một câu hỏi mới với các chi tiết thích hợp sẽ giúp ích. – Kashyap