minor: Финализация production конфигурации
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m44s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 3m44s
This commit is contained in:
@@ -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 мог проверять их свежесть и скачивать для обновления.
|
||||
# Получить эти данные можно в настройках вашего репозитория, например:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user