Как инициализировать базу данных PSQL в файле docker-compose? - PullRequest
0 голосов
/ 06 ноября 2018

Я хотел бы знать, возможно ли выполнить команду PSQL внутри файла docker-compose.

У меня есть следующее docker-compose.yml:

version: '3' 
services:
  postgres:
    image: postgres:9.6
    container_name: postgres-container
    ports:
      - "5432:5432"
    network_mode: host
    environment:
      - LC_ALL=C.UTF-8
      - POSTGRES_DB=databasename
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=
      - POSTGRES_PORT=5432

И после того, как все работает нормально, я запускаю следующую команду: docker exec -i postgres-container psql -U username -d databasename < data.sql

Эти 2 шага работают нормально. Но я хотел бы знать, можно ли сделать один единственный шаг.

Каждый раз, когда я хочу выполнить эту команду. Важно, что база данных всегда новая. Вот почему я не сохраняю это в volume и хочу выполнить эту команду.

Можно ли запустить docker-compose up, а также выполнить команду psql?

Заранее спасибо!

1 Ответ

0 голосов
/ 06 ноября 2018

Чисто докерно-составное решение с объемом,

  volumes:
    - ./data.sql:/docker-entrypoint-initdb.d/init.sql

Согласно dockerfile , при запуске он будет выгружать все данные sql в docker-entrypoint-initdb.d

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...