13 lines
1.8 KiB
Markdown
13 lines
1.8 KiB
Markdown
# Итог: эксплуатация — контейнер, миграции, TLS, зависимости (изменение 022)
|
||||
|
|
|
|||
|
|
## Что сделано
|
|||
|
|
- `Dockerfile`: пользователь `app` (uid 10001), `HEALTHCHECK` через `urllib` к `/healthz`, установка из `requirements.lock`.
|
|||
|
|
- `docker-compose.yml`: `restart: unless-stopped`, healthcheck у `app`, порт `${APP_BIND:-0.0.0.0}:${APP_PORT}:8000`.
|
|||
|
|
**Отклонение от плана:** значение `APP_BIND` по умолчанию — `0.0.0.0` (как раньше), а не `127.0.0.1`, чтобы не отключить доступ из LAN (`192.168.5.9:8088`) без согласования; для закрытия порта задайте `APP_BIND=127.0.0.1` в `.env`.
|
|||
|
|
- `alembic/env.py`: миграции выполняются под `pg_advisory_lock(703000)` на отдельном соединении.
|
|||
|
|
- `requirements.lock` (pip-compile), `pip-tools` в `requirements-dev.txt`; `.env.example`.
|
|||
|
|
- `README.md`: раздел «Публикация и эксплуатация» (пример Caddy, `TRUSTED_PROXIES`, обновление lock-файла).
|
|||
|
|
|
|||
|
|
## Проверка
|
|||
|
|
Проверка: стенд `ipam_control_006` пересобран, миграции применены до 0008 (`alembic check` — расхождений нет); ручная проверка (скрипт во временной папке, в репозиторий не добавлялся); автотесты по условию этапа не писались. Контейнер `healthy`, процесс `uid=10001(app)`, миграции 0005–0008 применены под блокировкой.
|
|||
|
|
Не проверено: одновременный запуск двух миграций; конфигурация Caddy (на хосте не менялась).
|