@de-dup-i-dipi

Docker, postgres и создание бд?

Когда я запускаю создание образа из терминала командой
docker run --name proj_bd -d \
    --env 'DB_NAME=main_base' \
    --env 'DB_USER=user' --env 'DB_PASS=pass' \
    --env 'DB_EXTENSION=pg_trgm' \
    postgresql:11.1

То создается бд и роль с паролем. Когда я пытаюсь сделать через docker-compose up
version: "3.7"
services:
  postgresql:
    image: postgres:11.1
    env_file: vars.sh
    volumes:
      - ./dockerfiles/pgdata:/var/lib/postgresql/data/pgdata
    ports:
      - "5433:5432"

То роль не создается, бд не создается, только дефотная роль postgres. При запуске docker-compose config в поле environment попадают параметры из файла с переменными. Как заставить создавать бд с параметрами через docker-compose?
На всякий случай, пример что в переменных
DB_NAME=main_base
DB_USER=user
DB_PASS=pass
DB_HOST=postgresql
  • Вопрос задан
  • 1774 просмотра
Решения вопроса 1
qork
@qork
{ background: #F00B42 }
Создается БД и пользователь, запуская с переменными из описания https://hub.docker.com/_/postgres
version: '3.3'

services:
  pgsql:
    image: postgres:11.1
    ports:
      - 5432:5432
    volumes:
      - ./pgsql:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: app
      POSTGRES_USER: app
      POSTGRES_DB: app
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы