LINUX.ORG.RU

Это должно делать либо само приложение, либо нужно запускать внутри скрипт, где сначала инициализируется БД, а затем запускается приложение.

Какая у тебя БД и на чём написано приложение?

Предупреждаю только, что один раз накатить схему мало, ибо в будущем ты обязательно будешь её обновлять, так что нужен хотя бы простенький механизм миграций.

WitcherGeralt ★★ ()
Последнее исправление: WitcherGeralt (всего исправлений: 2)
Ответ на: комментарий от WitcherGeralt

Так да, я могу в питон инсталлятор пихнуть эту логику, но я думал что возможно это средствами докера сделать

Andreezy ()

Как и на хосте, например через pg_restore. В чем конкретно проблема?

anonymous ()

Несколько вариантов:

  1. Добавь инструкцию RUN в докерфайле, котроая скрипт запустит.

  2. Сделай wrapper скрипт, который будет прописан в ENTRYPOINT и будет инициализировать базу, если она еще не была инициализирована при старте контейнера.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Добавь инструкцию RUN в докерфайле, котроая скрипт запустит

Ты сонный, наверное.

WitcherGeralt ★★ ()

Если у тебя официальный образ postgres то можешь глянуть раздел «Initialization scripts» https://hub.docker.com/_/postgres но только если он при каждом старте будет выполнятся то об идемпотентности придется самому заботится и руками всякие IF NOT EXISTS писать. Я бы в проде не стал такое делать.

mythCreator ()
Ответ на: комментарий от hippi90

Проблема решилась следующим образом

Dockerfile

FROM postgres:12
COPY init.sql /docker-entrypoint-initdb.d/

скрипты sql из /docker-entrypoint-initdb.d/ будут автоматически запущены при старте контейнера

Andreezy ()
Ответ на: комментарий от Andreezy

Ты каждый раз при старте контейнера заново с нуля создаешь БД?

hippi90 ★★★★★ ()
Ответ на: комментарий от Andreezy

Кривой подход, базу лучше вінести в вольюм и монтировать в контейнер при старте.

А в твоем случае у тебя новая база будет каждій раз и не переживет рестарт контейнера.

PunkoIvan ★★★★ ()
Ответ на: комментарий от PunkoIvan

Парни, я в докере вообще валенок. Делаю по советам того что в гугле

Andreezy ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.