Установка PostgreSQL в Docker на Synology

Всем привет!!!

В этой статье я расскажу как установить базу данных 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 контейнере или любой другой, который у вас есть.

В открывшемся окне:

  1. Придумайте имя сервера
  2. Перейдите на вкладку соединение
  3. Укажите имя сервера из docker compose
  4. Укажите базу данных сервера из docker compose
  5. Укажите имя пользователя из docker compose
  6. Укажите пароль пользователя из docker compose
  7. Установите переключатель запомнить пароль

Теперь перед вами рабочий Web UI PGadmin интерфейс настроенный и готовый работать с базой данных PostgeSQL

Теперь вы знаете как установить PostgreSQL в Docker на Synology

Мне помогли:

Подписаться
Уведомить о
guest
2 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии