Initial commit
This commit is contained in:
81
BUILD_INSTRUCTIONS.md
Normal file
81
BUILD_INSTRUCTIONS.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Инструкция по сборке единого 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user