All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 57s
- Add telegram_integrations table to store bot token and chat_id - Add Integrations tab with Todoist and Telegram integration screens - Remove TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID from env variables - All Telegram configuration now done through UI - Telegram webhook registration happens when user saves bot token - Rename TELEGRAM_WEBHOOK_BASE_URL to WEBHOOK_BASE_URL
2.7 KiB
2.7 KiB
Инструкция по сборке единого Docker образа
Этот проект содержит единый Dockerfile для сборки frontend и backend в один образ.
Структура
Dockerfile- единый Dockerfile для сборки frontend и backendnginx-unified.conf- конфигурация nginx для единого образаsupervisord.conf- конфигурация supervisor для запуска nginx и backendbuild-and-save.sh- скрипт для сборки и сохранения в tar (Linux/Mac)build-and-save.ps1- скрипт для сборки и сохранения в tar (Windows PowerShell)
Сборка образа
Linux/Mac:
./build-and-save.sh
Windows PowerShell:
.\build-and-save.ps1
Вручную:
# Сборка образа
docker build -t play-life-unified:latest .
# Сохранение в tar
docker save play-life-unified:latest -o play-life-unified.tar
Загрузка образа на другой машине
docker load -i play-life-unified.tar
Запуск контейнера
docker run -d \
-p 80:80 \
--env-file .env \
--name play-life \
play-life-unified:latest
Переменные окружения
Создайте файл .env на основе env.example с необходимыми переменными:
DB_HOST- хост базы данных (по умолчанию: localhost)DB_PORT- порт базы данных (по умолчанию: 5432)DB_USER- пользователь БДDB_PASSWORD- пароль БДDB_NAME- имя БДWEBHOOK_BASE_URL- базовый URL для webhook (опционально)- Bot Token и Chat ID настраиваются через UI приложения в разделе "Интеграции" -> "Telegram"
TODOIST_WEBHOOK_SECRET- секрет для Todoist webhook (опционально)
Важно: Backend внутри контейнера всегда работает на порту 8080. Nginx проксирует запросы с порта 80 на backend.
Проверка работы
После запуска контейнера:
- Frontend доступен по адресу:
http://localhost - API доступен через nginx:
http://localhost/api/... - Admin панель:
http://localhost/admin.html
Логи
Логи доступны через supervisor:
docker exec play-life cat /var/log/supervisor/backend.out.log
docker exec play-life cat /var/log/supervisor/nginx.out.log