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 # - AWS Systems Manager Parameter Store
# - HashiCorp Vault # - HashiCorp Vault
# ****************************************************************************************************************
# Системные пути на хосте (ТОЛЬКО ДЛЯ ПРОДАКШЕНА)
# Используется скриптом для генерации корректного Nginx конфига (alias к медиа-файлам).
# На локальной машине разработчика (Dev) эта переменная игнорируется.
# В ПРОДАКШЕНЕ: Укажите полный путь к папке проекта на сервере
HOST_PROJECT_PATH=/home/username/projects
# **************************************************************************************************************** # ****************************************************************************************************************
# Настройки доступа к пакетам в репозитории, чтобы wathtower мог проверять их свежесть и скачивать для обновления. # Настройки доступа к пакетам в репозитории, чтобы 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`: Отредактировать `~/docker-app/oknardia-site/.env`:
```bash ```bash
# Критично: должны быть правильные credentials для реестра Gitea # ОБЯЗАТЕЛЬНО заполнить эти переменные!
REPO_USER=erjemin
REPO_PASS=<сгенерированный токен из личного кабинета>
# Критично: переменная с путем проекта для sed в конфиге nginx # Путь к проекту на хосте (используется для sed-замены в конфиге nginx)
export HOST_PROJECT_PATH=/home/default_user/projects/oknardia-site HOST_PROJECT_PATH=/home/default_user/projects/oknardia-site
# (если путь другой, обновить эту переменную)
# Остальное можно скопировать из локального .env # Credentials для скачивания образа из реестра Gitea
REPO_USER=имя_пользователя_gitea
REPO_PASS=токен_из_личногоабинета_gitea
# Остальное скопировать из локального .env
DEBUG=False DEBUG=False
DJANGO_SECRET_KEY=... DJANGO_SECRET_KEY=...
``` ```
**Важно:** `HOST_PROJECT_PATH` должен совпадать с корневой папкой проекта на хосте, куда ты скопировал docker-compose.prod.yml!
### 3. Запустить контейнеры ### 3. Запустить контейнеры
```bash ```bash

View File

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