3.2 KiB
Установка за существующим nginx
Если порты 80 и 443 уже заняты nginx, он может обслуживать HTTPS-домен Chatballs и передавать запросы шлюзу установки по локальному HTTP-порту.
Создайте рядом с релизным compose.yaml файл compose.override.yaml:
services:
gateway:
ports: !override
- "127.0.0.1:8443:80"
Требуется Docker Compose 2.24.4 или новее. !override заменяет весь список
портов: исходные публикации 80 и 443 не сохраняются. Здесь 8443 — внутренний
HTTP-порт, а не внешний HTTPS-порт.
Запустите установку с обоими файлами:
docker compose -f compose.yaml -f compose.override.yaml up -d --wait
Внешний nginx завершает HTTPS и проксирует запросы на
http://127.0.0.1:8443, сохраняя Host, передавая X-Forwarded-Proto
и поддерживая WebSocket. Сертификат и HTTP → HTTPS редирект обслуживает
внешний nginx. Открывайте мастер первого запуска по окончательному
HTTPS-домену без внутреннего порта.
Обновления из интерфейса
Updater берёт список Compose-файлов из меток работающего контейнера.
Первый файл заменяется новым релизом; дополнительные файлы сохраняются
в исходном порядке. Поддерживаются стандартный compose.override.yaml
и файлы с другими именами, явно переданные через -f.
Override должен быть применён при запуске установки. Файл, который просто лежит рядом, но не входит в конфигурацию работающего проекта, при обновлении автоматически не подключается.
Если после запуска меняете набор или порядок файлов -f, пересоздайте
updater с новым набором, чтобы его Compose-метки отражали конфигурацию:
docker compose -f compose.yaml -f compose.override.yaml up -d --no-deps --force-recreate updater
Каталог установки и дополнительные файлы доступны помощнику обновления
только на чтение. Это сохраняет разрешение .env, относительных env_file
и путей конфигурации. Файлы override должны оставаться доступными по тем же
путям. Пропавший или некорректный override останавливает обновление до
перезапуска сервисов. Релиз перезаписывает только основной compose.yaml.