Рефакторинг инфраструктуры и конфигурации проекта
- Перенесена структура Django-конфига в src/core и src/settings - Унифицирована Docker-сборка и docker-compose для dev/prod - Добавлены startup-checks (DB/Redis) и обновлены env-шаблоны - Расширена OpenAPI-документация и ответы API - Удалены устаревшие deploy/requirements/служебные скрипты - Обновлены CI/CD, README и тесты
This commit is contained in:
18
docker/scripts/check-deps.sh
Executable file
18
docker/scripts/check-deps.sh
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.dev}"
|
||||
export STARTUP_COMPONENT="${STARTUP_COMPONENT:-container}"
|
||||
|
||||
python - <<'PY'
|
||||
import os
|
||||
|
||||
import django
|
||||
|
||||
django.setup()
|
||||
|
||||
from apps.core.startup_checks import run_startup_checks
|
||||
|
||||
run_startup_checks(component=os.environ["STARTUP_COMPONENT"])
|
||||
print(f"[startup:{os.environ['STARTUP_COMPONENT']}] dependency checks passed")
|
||||
PY
|
||||
15
docker/scripts/migrate.sh
Executable file
15
docker/scripts/migrate.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.dev}"
|
||||
export STARTUP_COMPONENT="migrate"
|
||||
|
||||
/app/docker/scripts/check-deps.sh
|
||||
|
||||
python src/manage.py migrate --noinput
|
||||
|
||||
if [ "${COLLECTSTATIC_ON_MIGRATE:-0}" = "1" ]; then
|
||||
python src/manage.py collectstatic --noinput
|
||||
fi
|
||||
|
||||
echo "[startup:migrate] migrations completed"
|
||||
8
docker/scripts/start-celery-beat.sh
Executable file
8
docker/scripts/start-celery-beat.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.production}"
|
||||
|
||||
exec celery -A core beat \
|
||||
--loglevel="${CELERY_LOG_LEVEL:-INFO}" \
|
||||
--scheduler django_celery_beat.schedulers:DatabaseScheduler
|
||||
8
docker/scripts/start-celery-worker.sh
Executable file
8
docker/scripts/start-celery-worker.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.production}"
|
||||
|
||||
exec celery -A core worker \
|
||||
--loglevel="${CELERY_LOG_LEVEL:-INFO}" \
|
||||
--concurrency="${CELERY_WORKER_CONCURRENCY:-2}"
|
||||
6
docker/scripts/start-web-dev.sh
Executable file
6
docker/scripts/start-web-dev.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.dev}"
|
||||
|
||||
exec python src/manage.py runserver "0.0.0.0:${PORT:-8000}"
|
||||
11
docker/scripts/start-web.sh
Executable file
11
docker/scripts/start-web.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env sh
|
||||
set -eu
|
||||
|
||||
export DJANGO_SETTINGS_MODULE="${DJANGO_SETTINGS_MODULE:-settings.production}"
|
||||
|
||||
exec gunicorn core.wsgi:application \
|
||||
--bind "0.0.0.0:${PORT:-8000}" \
|
||||
--workers "${GUNICORN_WORKERS:-3}" \
|
||||
--timeout "${GUNICORN_TIMEOUT:-60}" \
|
||||
--access-logfile "-" \
|
||||
--error-logfile "-"
|
||||
Reference in New Issue
Block a user