В моем docker-compose.yml
две услуги. Почтовый сервис, который использует MailHog и MongoDB для хранения.
Проблема в том, что сервис MongoDB должен быть запущен до MailHog. В противном случае MailHog выполнит откат и будет использовать свое хранилище в памяти.
Простого depends_on
недостаточно, потому что службе MongoDB требуется некоторое время для запуска.
Я знаю скрипты типа wait-for-it
et c. но все они требуют изменения Dockerfile
, где в моем случае я использую неизмененный Docker образ MailHog.
Есть ли какой-либо «встроенный» механизм или обходной путь, как я могу отложить почтовую службу пока MongoDB не будет готов?
mail:
image: mailhog/mailhog:v1.0.0
deploy:
restart_policy:
condition: on-failure
delay: 10s
max_attempts: 3
window: 60s
mail-db:
image: mongo:4.2.6
environment:
MONGO_INITDB_DATABASE: mailhog
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: root
ports:
- 27017
deploy:
restart_policy:
condition: on-failure
resources:
limits:
cpus: "0.5"
memory: 500M