Postgresql
Минимальный compose файл с возможностью подключиться извне, логином и паролем:
version: "3.9"
services:
postgres:
image: postgres:16.3
environment:
POSTGRES_DB: "testdb"
POSTGRES_USER: "testuser"
POSTGRES_PASSWORD: "testpass"
ports:
- "5432:5432"
Точка входа для инициализации базы данных: docker-entrypoint-initdb.d Все *.sql или *.sh файлы в этом каталоге - скрипты для инициализации БД. Детали использования:
-
если БД уже была проинициализирована ранее, то никакие изменения к ней применяться не будут;
-
если в каталоге присутствует несколько файлов, то они будут отсортированы по имени с использованием текущей локали (по умолчанию en_US.utf8).
version: "3.9"
services:
postgres:
image: postgres:16.3
environment:
POSTGRES_DB: "testdb"
POSTGRES_USER: "testuser"
POSTGRES_PASSWORD: "testpass"
volumes:
- .:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
Для постоянного размещения БД нужно подмонтировать соответствующий каталог (куда будут сохраняться данные) в контейнер и при необходимости переопределить переменную окружения PGDATA
version: "3.9"
services:
postgres:
image: postgres:16.3
environment:
POSTGRES_DB: "testdb"
POSTGRES_USER: "testuser"
POSTGRES_PASSWORD: "testpass"
PGDATA: "/var/lib/postgresql/data/pgdata"
volumes:
- .:/docker-entrypoint-initdb.d
- mydata:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
mydata:
Подключение к базе через psql
psql -d testdb -U testuser -W -h 127.0.0.1 -p 5430