Files
play-life/BUILD_INSTRUCTIONS.md
2025-12-29 20:01:55 +03:00

82 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Инструкция по сборке единого Docker образа
Этот проект содержит единый Dockerfile для сборки frontend и backend в один образ.
## Структура
- `Dockerfile` - единый Dockerfile для сборки frontend и backend
- `nginx-unified.conf` - конфигурация nginx для единого образа
- `supervisord.conf` - конфигурация supervisor для запуска nginx и backend
- `build-and-save.sh` - скрипт для сборки и сохранения в tar (Linux/Mac)
- `build-and-save.ps1` - скрипт для сборки и сохранения в tar (Windows PowerShell)
## Сборка образа
### Linux/Mac:
```bash
./build-and-save.sh
```
### Windows PowerShell:
```powershell
.\build-and-save.ps1
```
### Вручную:
```bash
# Сборка образа
docker build -t play-life-unified:latest .
# Сохранение в tar
docker save play-life-unified:latest -o play-life-unified.tar
```
## Загрузка образа на другой машине
```bash
docker load -i play-life-unified.tar
```
## Запуск контейнера
```bash
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` - имя БД
- `TELEGRAM_BOT_TOKEN` - токен Telegram бота (опционально)
- `TELEGRAM_CHAT_ID` - ID чата Telegram (опционально)
- `TELEGRAM_WEBHOOK_BASE_URL` - базовый URL для webhook (опционально)
- `TODOIST_WEBHOOK_SECRET` - секрет для Todoist webhook (опционально)
**Важно:** Backend внутри контейнера всегда работает на порту 8080. Nginx проксирует запросы с порта 80 на backend.
## Проверка работы
После запуска контейнера:
- Frontend доступен по адресу: `http://localhost`
- API доступен через nginx: `http://localhost/api/...`
- Admin панель: `http://localhost/admin.html`
## Логи
Логи доступны через supervisor:
```bash
docker exec play-life cat /var/log/supervisor/backend.out.log
docker exec play-life cat /var/log/supervisor/nginx.out.log
```