@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
  • Вопрос задан
  • 212 просмотров
Решения вопроса 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Абсолют Банк Москва
от 130 000 до 180 000 руб.
Мобайл Медиа Санкт-Петербург
от 100 000 руб.
YLab Тольятти
от 80 000 до 140 000 руб.