minor: Финализация production конфигурации
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m44s

This commit is contained in:
2026-05-20 14:29:39 +03:00
parent 5678624608
commit 2d7e0813d6
3 changed files with 25 additions and 13 deletions

View File

@@ -152,6 +152,14 @@ ALLOW_MEDIA_SERVE=False
# - AWS Systems Manager Parameter Store
# - HashiCorp Vault
# ****************************************************************************************************************
# Системные пути на хосте (ТОЛЬКО ДЛЯ ПРОДАКШЕНА)
# Используется скриптом для генерации корректного Nginx конфига (alias к медиа-файлам).
# На локальной машине разработчика (Dev) эта переменная игнорируется.
# В ПРОДАКШЕНЕ: Укажите полный путь к папке проекта на сервере
HOST_PROJECT_PATH=/home/username/projects
# ****************************************************************************************************************
# Настройки доступа к пакетам в репозитории, чтобы wathtower мог проверять их свежесть и скачивать для обновления.
# Получить эти данные можно в настройках вашего репозитория, например:

View File

@@ -41,19 +41,22 @@ cp config/nginx/oknardia-app--external-nginx.conf ~/docker-app/oknardia-site/con
Отредактировать `~/docker-app/oknardia-site/.env`:
```bash
# Критично: должны быть правильные credentials для реестра Gitea
REPO_USER=erjemin
REPO_PASS=<сгенерированный токен из личного кабинета>
# ОБЯЗАТЕЛЬНО заполнить эти переменные!
# Критично: переменная с путем проекта для sed в конфиге nginx
export HOST_PROJECT_PATH=/home/default_user/projects/oknardia-site
# (если путь другой, обновить эту переменную)
# Путь к проекту на хосте (используется для sed-замены в конфиге nginx)
HOST_PROJECT_PATH=/home/default_user/projects/oknardia-site
# Остальное можно скопировать из локального .env
# Credentials для скачивания образа из реестра Gitea
REPO_USER=имя_пользователя_gitea
REPO_PASS=токен_из_личногоабинета_gitea
# Остальное скопировать из локального .env
DEBUG=False
DJANGO_SECRET_KEY=...
```
**Важно:** `HOST_PROJECT_PATH` должен совпадать с корневой папкой проекта на хосте, куда ты скопировал docker-compose.prod.yml!
### 3. Запустить контейнеры
```bash

View File

@@ -30,6 +30,7 @@ services:
# 5. Пересчитываем рейтинги
# 6. Создаём папку конфигов nginx (если нет)
# 7. Копируем конфиг nginx с авто-заменой путей через sed
# (переменная HOST_PROJECT_PATH берется из .env и подставляется в контейнер)
# 8. Инициализируем боевой конфиг (если нет, копируем из примера)
# 9. Запускаем Gunicorn
command: >
@@ -39,12 +40,12 @@ services:
python manage.py regenerate_seria_prerender &&
python manage.py make_rating &&
mkdir -p /nginx_configs_host/nginx &&
sed \"s|/home/user/app/oknardia-site|$${HOST_PROJECT_PATH:-/home/default_user/projects/oknardia-site}|g\" /home/app/config/nginx/oknardia-app--external-nginx.conf > /nginx_configs_host/nginx/oknardia-app--external-nginx.conf.example &&
sed \"s|/home/user/app/oknardia-site|$${HOST_PROJECT_PATH}|g\" /home/app/config/nginx/oknardia-app--external-nginx.conf > /nginx_configs_host/nginx/oknardia-app--external-nginx.conf.example &&
if [ ! -f /nginx_configs_host/nginx/oknardia-app--external-nginx.conf ]; then
cp /nginx_configs_host/nginx/oknardia-app--external-nginx.conf.example /nginx_configs_host/nginx/oknardia-app--external-nginx.conf;
echo 'INIT: Created new nginx config with correct paths';
fi &&
python -m gunicorn --workers 4 --bind 0.0.0.0:8000 --timeout 120 oknardia.wsgi:application"
python -m gunicorn --workers 2 --bind 0.0.0.0:8000 --timeout 120 oknardia.wsgi:application"
# Пробрасывание портов
# Слушаем только на localhost хоста для безопасности
@@ -66,6 +67,7 @@ services:
user: "0:0"
# ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ (Production)
# .env файл содержит все sensitive данные (DB, Email, API keys, REPO_USER/PASS)
env_file:
- .env
environment:
@@ -74,7 +76,6 @@ services:
- DEBUG=False
- DJANGO_LOG_LEVEL=INFO
- ALLOW_MEDIA_SERVE=False
- HOST_PROJECT_PATH=${HOST_PROJECT_PATH:-/home/default_user/projects/oknardia-site}
# ЗДОРОВЬЕ КОНТЕЙНЕРА (Healthcheck)
healthcheck:
@@ -95,9 +96,9 @@ services:
deploy:
resources:
limits:
cpus: '1.0'
memory: 1G
mem_limit: 1g
cpus: '0.75'
memory: 768M
mem_limit: 768M
# --- WATCHTOWER: АВТО-ОБНОВЛЕНИЕ ОБРАЗОВ ---
watchtower: