Как создать несколько БД и пользователей к ним 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) на свои значения.

2. Создайте папку data в корневой папке проекта. В этой папке будут храниться данные PostgreSQL.

3. Запустите Docker Compose, чтобы создать и запустить контейнер с PostgreSQL:

docker-compose up -d

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

4. Повторите шаги 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/

5. Запустите Docker Compose снова:

docker-compose up -d

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

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