Импорт из Docker Compose
Скопировать данные баз данных и кэшей из Docker Compose в сервисы Joppa, а затем переключить проект, никогда не изменяя источник.
Ваш проект запускает PostgreSQL или Redis в собственном docker-compose.yml? Joppa может скопировать их данные в свои сервисы, а затем направить проект на них. Источник никогда не изменяется.
Где это найти
- При анализе проекта (сразу после добавления или позже): шаг Сервисы предлагает Перейти на … из Joppa для каждого сервиса Compose, который Joppa умеет заменить (см. Анализ). Данные копируются после сохранения, в одном окне: полоса сверху отмечает сервисы по мере продвижения (
[✓] mailpit [2] postgres [3] redis), экран для каждой базы данных или кэша сам переходит к следующему после импорта, а в конце сводка перечисляет, что перешло на Joppa. У сервисов без данных для копирования своего экрана нет. - Позже: вкладка Домены проекта, раздел Данные Docker Compose.
Что можно импортировать
| Источник (Compose) | Назначение (Joppa) | Способ |
|---|---|---|
| PostgreSQL | PostgreSQL | pg_dump, затем восстановление |
| MySQL, MariaDB | MySQL или MariaDB | mysqldump, затем восстановление |
| Redis, Valkey | Redis или Valkey | Копирование ключей (DUMP / RESTORE) |
| Mailpit, MailHog | Mailpit | Без копирования: меняется только .env проекта |
| Typesense, Meilisearch | Typesense, Meilisearch | Без копирования: индексы перестраиваются из приложения (scout:import, предлагается после подключения) |
Reverb (контейнер, запускающий php artisan reverb:start), Soketi |
Reverb | Без копирования: тот же протокол (Pusher), меняется только .env. Joppa всегда запускает Reverb, даже вместо Soketi |
Joppa читает compose.yaml, compose.yml, docker-compose.yml или .yaml, файл override и COMPOSE_FILE, подставляя вместо ${VAR:-default} значения из .env и env_file. Он находит версию образа, даже если образ собран из Dockerfile (FROM).
План импорта
Прежде чем что-либо копировать, Joppa показывает источник, назначение и:
- База данных для импорта и Имя в Joppa;
- размер (или число ключей);
- версии с обеих сторон;
- расширения, которые использует исходная база: Доступно в Joppa, Нужно включить на сервере Joppa или Joppa не предлагает.
Для кэша параметр Заменить ключи, уже имеющиеся в Joppa выбирает между слиянием и перезаписью.
Что Joppa настраивает за вас
| Ситуация | Что предлагается |
|---|---|
| Источник остановлен | Запустить его (docker compose up) с вашего согласия |
| В Joppa ещё нет сервиса | Joppa сам создаёт его, той же версии, что и источник, на свободном порту |
| Сервис Joppa остановлен | Joppa сам его запускает |
| Порт источника не опубликован (кэши) | Фрагмент, который нужно добавить в Compose |
| Расширения нужно включить на сервере | Добавить их в образ и перезапустить сервис |
| База с таким же именем уже есть | Импортировать под другим именем или Заменить |
Импорт идёт по шагам, которые показываются как журнал: Дамп, Создание базы данных, Восстановление (или Чтение ключей, Копирование ключей), затем Перейти на Joppa.
С Joppa Pro Заменить сначала делает снимок заменяемой базы («Перед импортом из Compose»): см. Снимки.
Mailpit, поиск и Soketi
Mailpit или MailHog из Compose не нужно запускать рядом с Joppa: у Joppa уже есть свой Mailpit. Ничего не копируется (перехваченные сообщения — тестовые письма): Joppa останавливает сервис Compose и направляет .env проекта на свой Mailpit (MAIL_HOST и MAIL_PORT для Laravel, MAILER_DSN для Symfony, SMTP_HOST и SMTP_PORT для Node…). Сервис Compose может быть остановлен или запущен — это неважно, а если Mailpit в Joppa ещё нет, Joppa его создаёт. То же самое касается Typesense, Meilisearch и Soketi (его заменяет Reverb в Joppa): ничего не копируется, а поисковые индексы заполняются на шаге «Заполнить индексы», предлагаемом после подключения. При анализе всё происходит без отдельного экрана; в разделе Данные Docker Compose кнопка Перейти на Joppa открывает один экран с вариантами ниже.
После импорта
Под планом раздел После импорта показывает, что последует за копированием, ещё до нажатия Импортировать:
- Остановить сервис Compose и освободить порт: его данные остаются в Docker;
- Направить .env проекта на Joppa — с переменными, которые изменятся: оригинал сохраняется в
.env.joppa-backup.
Оба пункта отмечены по умолчанию. Если снять флажки, Compose и .env останутся как есть.