Найти в Дзене

Разворачиваем сервер с контейнеризацией для собственных нужд. Часть 7 - запускаем PHPMyAdmin, PgAdmin в docker-swarm

Теперь нам нужно подготовить прочную основу для дальнейшей раскатки всего и вся в контейнерах. В будущем нам понадобятся: В этой части развернём PHPMyAdmin и PgAdmin и, пока что, пробросим их по портам. Напоминаю, что сервер развёрнут и работает в timeweb.cloud, но вы можете использовать любой другой VPS. На самом деле здесь задача максимально простая, так как уже существуют готовые образы, которые только нужно обернуть в соответствующий compose-файл. Создаём директорию: sqladmin по пути: /home/docker-admin/infra/: mkdir /home/docker-admin/infra/sqladmmin В ней добавляем файл: docker-compose.yml со следующим содержимым: version: '3.9' services: pgadmin: image: dpage/pgadmin4:7 environment: PGADMIN_DEFAULT_EMAIL: <ваш email> PGADMIN_DEFAULT_PASSWORD: <пароль> volumes: - pgadmin-data:/var/lib/pgadmin deploy: replicas: 1 resources: limits: cpus: "1" memory: 1G reservations: memory: 64M restart_policy: condition: any # Перезапускать при любом статусе завершения delay: 5s #
Оглавление

Теперь нам нужно подготовить прочную основу для дальнейшей раскатки всего и вся в контейнерах. В будущем нам понадобятся:

  1. MySQL (развернули в ч. 5)
  2. PostgreSQL (развернули в ч. 6)
  3. PHPMyAdmin
  4. PgAdmin
  5. PHP-FPM
  6. Nginx

В этой части развернём PHPMyAdmin и PgAdmin и, пока что, пробросим их по портам.

Напоминаю, что сервер развёрнут и работает в timeweb.cloud, но вы можете использовать любой другой VPS.

Первичная конфигурация и запуск

На самом деле здесь задача максимально простая, так как уже существуют готовые образы, которые только нужно обернуть в соответствующий compose-файл.

Создаём директорию: sqladmin по пути: /home/docker-admin/infra/:

mkdir /home/docker-admin/infra/sqladmmin

В ней добавляем файл: docker-compose.yml со следующим содержимым:

version: '3.9'
services:
pgadmin:
image: dpage/pgadmin4:7
environment:
PGADMIN_DEFAULT_EMAIL: <ваш email>
PGADMIN_DEFAULT_PASSWORD: <пароль>
volumes:
- pgadmin-data:/var/lib/pgadmin
deploy:
replicas: 1
resources:
limits:
cpus: "1"
memory: 1G
reservations:
memory: 64M
restart_policy:
condition: any # Перезапускать при любом статусе завершения
delay: 5s # Задержка перед перезапуском
max_attempts: 3 # Количество попыток (0 — неограниченно)
window: 60s # Временное окно для подсчёта попыток
tty: true
ports:
- target: 80
published: 8102
mode: host
networks:
- portainer_composite_nw
phpmyadmin:
image: phpmyadmin:5.2.1-apache
deploy:
replicas: 1
resources:
limits:
cpus: "0.5"
memory: 512M
reservations:
memory: 64M
restart_policy:
condition: any # Перезапускать при любом статусе завершения
delay: 5s # Задержка перед перезапуском
max_attempts: 3 # Количество попыток (0 — неограниченно)
window: 60s # Временное окно для подсчёта попыток
tty: true
environment:
TZ: "Europe/Moscow"
PMA_HOST: mysql_db_main
PMA_PORT: 3306
PMA_ARBITRARY: 1
UPLOAD_LIMIT: 10485760
ports:
- target: 80
published: 8101
mode: host
networks:
- portainer_composite_nw
networks:

Здесь мы, почти под копирку, настраиваем два сервиса: phpmyadmin и pgadmin и пробрасываем их вовне на порты 8100 и 8101.

Обратить внимание стоит на настройку PMA_HOST в phpmyadmin - вам нужно указать там название контейнера с БД mysql (до .1.xxxxyyyyzzzz)

Когда все изменения в файл внесены - запускаем:

sudo docker stack deploy -c /home/docker-admin/infra/sqladmmin/docker-compose.yml sqladmin
Контейнеры стартуют
Контейнеры стартуют

Далее немного ждём и оба новых контейнера должны отобразиться в portainer:

Новые контейнеры запущены
Новые контейнеры запущены

После старта контейнеров мы можем проверить всё ли работает.

Вход в phpmyadmin

Сначала проверим phpmyadmin. Войдём под пользователем root и с его паролем, который указали в конфигах сервера. Обратите внимание, если у вас на сервере один контейнер и он дефолтный - ничего вводить в поле "Сервер" не нужно, если же сервер по-умолчанию отличается от вашего целевого, то там следует указать название целевого сервера.

Вход phpmyadmin
Вход phpmyadmin

После входа увидим обычный интерфейс PMA:

Получили доступ под MySQL root
Получили доступ под MySQL root

Вход в PGAdmin

Тут всё чуть сложнее. Вводим emailи пароль, указанные при создании контейнера

Вход pgadmin
Вход pgadmin

После загрузки нажимаем AddNewServer

Добавляем коннект в PgAdmin
Добавляем коннект в PgAdmin

На первой вкладке задаём имя коннекта (может быть любое)

Именуем коннект
Именуем коннект

На вкладке Connection указываем имя сервера, если делали всё в точности как я - у вас будет pgsql_pgsql

Там же указываем ранее заданный логин пользователя БД и его пароль. Если умолчаний не меняли - логин будет: admin

Для удобства ставим переключатель Save password

Настройки подключения
Настройки подключения

В других вкладках можно ничего не менять. Нажимаем кнопку Save - если всё заполнено по аналогии со мной и нет пропущенных обязательных полей, откроется обзор только что добавленной БД.

-9

Поздравляю. Настройка средств администрирования БД завершена!