Как создать несколько БД и пользователей к ним Docker compose?

Чтобы создать несколько баз данных и пользователей для них с помощью Docker Compose, нужно выполнить несколько шагов.

  1. Создайте файл docker-compose.yml в корневой папке проекта и определите сервисы, которые вы хотите создать. В нашем случае это будет PostgreSQL:
version: '3.7'

services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword
      POSTGRES_DB: mydb
    volumes:
      - ./data/:/var/lib/postgresql/data/

В этом примере мы создаем одну базу данных и одного пользователя для нее. Замените значения переменных окружения (POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB) на свои значения.

  1. Создайте папку data в корневой папке проекта. В этой папке будут храниться данные PostgreSQL.
  1. Запустите Docker Compose, чтобы создать и запустить контейнер с PostgreSQL:
docker-compose up -d

Теперь вы должны иметь работающий контейнер PostgreSQL с одной базой данных и одним пользователем.

  1. Повторите шаги 1-3 для каждой дополнительной базы данных и пользователей, которые вы хотите создать. Например, если вы хотите создать еще одну базу данных с пользователем, вы можете изменить свойства POSTGRES_USER, POSTGRES_PASSWORD и POSTGRES_DB для нового сервиса:
version: '3.7'

services:
  db1:
    image: postgres
    restart: always
    environment:
      POSTGRES_USER: myuser2
      POSTGRES_PASSWORD: mypassword2
      POSTGRES_DB: mydb2
    volumes:
      - ./data1/:/var/lib/postgresql/data/
  1. Запустите Docker Compose снова:
docker-compose up -d

Теперь у вас должно быть два работающих контейнера с PostgreSQL, каждый из которых имеет свою собственную базу данных и пользователя.

Вы также можете добавить другие сервисы в ваш файл docker-compose.yml, если вам нужно запустить не только PostgreSQL.