Юзеркейс: YC CLI → ВМ + Managed PostgreSQL → WordPress+Nginx в Docker Compose (и типовая ошибка PG4WP)
Контекст
Нужно было быстро развернуть демо-стенд в Yandex Cloud через CLI:
- 1 ВМ: 1 vCPU, 1 GB RAM, 30 GB диск
- 1 Managed PostgreSQL (самый бюджетный)
- на ВМ поднять Docker Compose со стеком
nginx + wordpress - подключить WordPress к созданной Managed PostgreSQL
- все ресурсы создать с префиксом
demo8, а после эксперимента — удалить
Важно: WordPress «из коробки» поддерживает MySQL/MariaDB, а не PostgreSQL. Для PostgreSQL нужен drop-in/плагин (например PG4WP). https://rutube.ru/video/24fb356ca94a410f129219d8151746b8/
1) Подготовка: YC CLI и SSH-ключ
Использовали установленный yc и публичный ключ на машине-инициаторе:
~/.ssh/id_ed25519.pub
Промт
На этой машинке есть яндекс кли
надо создать через кли
1 одну ВМ какую-то 1 цпу и 1 гб, 30 гб веника
1 инстасн базы данных с постгресмо. какой-то самый не дорогой
ssh ключ публчиный для ВМ лежит в на этой же машине ~/.ssh/id_ed25519.pub
Делай префикс у ресурсов demo8
2) Создание ресурсов через YC CLI
ВМ
Создали ВМ demo8-vm1 в ru-central1-a.
Практический нюанс: на платформах standard-* нельзя выбрать ровно 1 core, поэтому сделали эквивалент 1 vCPU как 2 cores с core-fraction 50%.
Параметры:
- cores:
2 - core-fraction:
50(эквивалент 1 vCPU) - memory:
1 GB - boot disk:
30 GB,network-hdd - NAT IPv4 включен
- SSH ключ добавлен в metadata
Managed PostgreSQL
Создали кластер demo8-pg:
- preset:
b1.medium(самый бюджетный из доступных) - disk:
network-hdd - PostgreSQL:
16 - DB:
demo8db - User:
demo8user - пароль сгенерирован и сохранён локально для дальнейшей настройки

3) Развёртывание Docker Compose на ВМ
На ВМ установили Docker Engine + Docker Compose plugin.
Затем подняли стек в /opt/demo8-wp:
nginx:1.27-alpine(проксирует PHP на FPM)wordpress:6.4-php8.2-fpm
Так как база — PostgreSQL, WordPress-контейнер собрали с расширениями:
pdo_pgsqlpgsql
В docker-compose.yml прокинули переменные подключения к БД через .env, использовали pooler порт 6432 у Managed PostgreSQL.
4) Подключение WordPress к PostgreSQL: PG4WP
Для работы WordPress с PostgreSQL подключили drop-in PG4WP:
- в контейнер WordPress кладётся
wp-content/db.php(drop-in), который подменяет драйвер базы - дополнительно нужен каталог
wp-content/pg4wp/*
Типовая ошибка
На первом запуске получили ошибку на сайте:
PG4WP file directory not found
Причина: был скопирован только db.php, но не была добавлена директория wp-content/pg4wp.
Исправление
Решение простое:
- скопировать всю директорию
pg4wpвнутрь контейнера вwp-content/pg4wp - выставить права на
www-data - перезапустить контейнеры
После этого WordPress корректно редиректил на мастер-установку:
/wp-admin/install.php

5) Проверка
Проверяли:
docker compose ps— оба контейнераUpcurl http://<public_ip>/— получали ответ от nginx- логи WordPress (php-fpm) — без критичных ошибок
6) Очистка ресурсов
По завершении эксперимента удалили все ресурсы с префиксом demo8:
- ВМ
demo8-vm1 - Managed PostgreSQL
demo8-pg
Итоги
Этот кейс хорошо показывает «быстрый путь» к демо-стенду через CLI:
- инфраструктура (ВМ + Managed DB) создаётся за минуты
- приложение поднимается docker-compose’ом без ручной настройки nginx/php
- при использовании PostgreSQL с WordPress нужно помнить про PG4WP: одного
db.phpнедостаточно, требуется и директорияwp-content/pg4wp.