я делаю через RUN но они не всегда срабатывают
Только в entrypoint, никаких run
его тоже пытался, с ним заработал костыль вида sleep 5 migrate sleep 5 migrate sleep 5 без этого оно говорит что постгрес контейнер получил сигнал на остановку и падает
Нужно сначала дождаться запуска базы, и уже потом запускать миграцию. Это делается либо скриптом в entrypoint, либо depends_on в docker-compose.yml (но там есть свои приколы)
depends_on прописал на постгрес и редис но ему все равно)
Потому что с ним не все так просто. По-умолчанию он не ждёт, что база после старта своего контейнера успела подняться, он просто запускает два контейнера подряд. Чтобы это нормально работало, нужно настраивать у контейнера с базой healthcheck и указывать в depends_on опцию condition: service_healthy
примерно так? https://pastebin.com/de8Wxyya
зачем тебе db-migration?
он alembic upgrade heads будет делать
или это не так нужно делать?
тогда в app в depends_on для db-migration должно быть не service_started, а service_completed_successfully
Обсуждают сегодня