Всем привет!!!
В этой статье я расскажу как установить базу данных PostgreSQL в Docker на Synology и подключить web интерфейс управления PGadmin.
PostgreSQL — это объектно-реляционная система управления базами данных (СУБД) с открытым исходным кодом. Она помогает хранить, организовывать информацию и управлять ей.
Эта статья поможет студентам, разработчикам и просто тем кому это нужно развернуть на Synology базу данных PostgreSQL. Обычным людям PostgreSQL не нужна по отдельности.
Подготовка
В папке docker создайте каталог postgres и в нем еще две папки db-data (для базы данных) и pgadmin-data (для веб интерфейса управление)
Откройте свойства папки pgadmin-data и в разделе разрешения сделайте наследуемые разрешения явными
Отредактируйте разрешения группы Everyone так что бы был доступ на чтение и запись к папке pgadmin-data
Файл docker compose
Для установки нужен docker-compose файл. Можно изменить имя БД, пользователя и пароль по вашему усмотрению. Так же можно заменить порты 2534 (BD) и 2535 (WEB UI). К сожалению дефолтный порт PostgreSQL 5432 нельзя оставить, т.к. этот порт используется системным PostgreSQL.
В разделе command можно изменять параметры при необходимости или вообще удалить весь этот раздел.
version: "3.9"
services:
postgres:
container_name: postgresDB
image: postgres:14.8-alpine3.18
command:
- "postgres"
- "-c"
- "max_connections=50"
- "-c"
- "shared_buffers=1GB"
- "-c"
- "effective_cache_size=4GB"
- "-c"
- "work_mem=16MB"
- "-c"
- "maintenance_work_mem=512MB"
- "-c"
- "random_page_cost=1.1"
- "-c"
- "temp_file_limit=10GB"
- "-c"
- "log_min_duration_statement=200ms"
- "-c"
- "idle_in_transaction_session_timeout=10s"
- "-c"
- "lock_timeout=1s"
- "-c"
- "statement_timeout=60s"
- "-c"
- "shared_preload_libraries=pg_stat_statements"
- "-c"
- "pg_stat_statements.max=10000"
- "-c"
- "pg_stat_statements.track=all"
environment:
POSTGRES_DB: "bafistadb"
POSTGRES_USER: "bafistauser"
POSTGRES_PASSWORD: "pgpwd4bafista"
PGDATA: "/var/lib/postgresql/data/pgdata"
volumes:
#- ../2. Init Database:/docker-entrypoint-initdb.d
- ./db-data:/var/lib/postgresql/data
ports:
- "2534:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U habrpguser -d habrdb"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
restart: unless-stopped
deploy:
resources:
limits:
memory: 4G
pgadmin:
container_name: pgadmin
image: dpage/pgadmin4:latest
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:5050
environment:
PGADMIN_DEFAULT_EMAIL: "test@test.ru"
PGADMIN_DEFAULT_PASSWORD: "testpassword"
#PGADMIN_CONFIG_SERVER_MODE: "False"
PGADMIN_LISTEN_PORT: 5050
volumes:
- ./pgadmin-data:/var/lib/pgadmin
ports:
- "2535:5050"
restart: unless-stopped
deploy:
resources:
limits:
memory: 1G
volumes:
db-data:
pgadmin-data:
Установка
Открываем Container Manager, вкладка проекты и создаем новый проект. Придумываем название, указываем нужный путь и вставляем docker compose текст или файл. Затем везде далее.
После скачивания образов и развертывания контейнера увидите exit code 0, который означает, что проект успешно создан.
Сам проект, который содержит два контейнера с базой данных и WEB UI PGadmin, готов и работает в Docker на Synology
Настройка PGadmin
В новой вкладке браузера переходим на http://IP-NAS:2535. Откроется окно PGadmin. Введите логин и пароль, который вы указывали в docker compose при создании контейнера. Дополнительно можно выбрать язык как я Русский
Откроется окно PGadmin. Тут нужно добавить наш сервер PostgreSQL в docker контейнере или любой другой, который у вас есть.
В открывшемся окне:
- Придумайте имя сервера
- Перейдите на вкладку соединение
- Укажите имя сервера из docker compose
- Укажите базу данных сервера из docker compose
- Укажите имя пользователя из docker compose
- Укажите пароль пользователя из docker compose
- Установите переключатель запомнить пароль
Теперь перед вами рабочий Web UI PGadmin интерфейс настроенный и готовый работать с базой данных PostgeSQL
Теперь вы знаете как установить PostgreSQL в Docker на Synology
Мне помогли: