refactor(docker): Enhance settings.py and deployment
This commit significantly refactors the Docker setup and application
configuration for improved robustness and flexibility.
Key changes include:
- Centralized Environment Variables:
- Default values for essential settings (database, email, cache, etc.)
are now defined in `django_project/settings.py` using `environ.Env`.
This provides sensible defaults and reduces reliance on `.env` files,
especially during Docker image builds.
- `docker-compose.yml` no longer defines environment variables directly
for `web` and `worker` services, deferring to `.env` and settings defaults.
- Dockerfile & Entrypoint Improvements:
- `DJANGO_SETTINGS_MODULE` is now exclusively set as an ENV in `Dockerfile`, instead of setting it in `entrypoint.sh`
- `entrypoint.sh` now conditionally appends `--static-path-mount`
only to the `granian` command, leveraging the upgraded Granian's
(v2.3.0+) ability to serve static files directly. The `STATIC_ROOT` is
dynamically fetched from Django settings.
- Dependency Updates:
- Upgraded `granian` from 2.2.5 to 2.3.1.
- Upgraded `click` from 8.2.0 to 8.2.1.
- `uv.lock` reflects these and other minor transitive dependency updates.
- Configuration Adjustments in `settings.py`:
- Add defaults for all env variables, and set to default local dev settings
- Introduced a `SCHEME` environment variable (defaulting to 'http')
used for `CSRF_TRUSTED_ORIGINS`, `META_SITE_PROTOCOL`,
`ACCOUNT_DEFAULT_HTTP_PROTOCOL`, etc.
- `TIME_ZONE` and various email settings (host, port, user, password, TLS)
are now configurable via environment variables with defaults.
- `CELERY_TIMEZONE` now defaults to the `TIME_ZONE` setting.
- Removed the unused `SCW_SECRET_KEY` variable (previously used for
EMAIL auth).
This commit is contained in:
parent
d4948e7cd3
commit
02f23dba28
6 changed files with 90 additions and 93 deletions
|
|
@ -6,14 +6,16 @@ if [ "$1" == "" ]; then
|
|||
exit;
|
||||
fi
|
||||
|
||||
if [ "$DJANGO_SETTINGS_MODULE" == "" ]; then
|
||||
echo "Environment variable 'DJANGO_SETTINGS_MODULE' not set. Exiting."
|
||||
exit;
|
||||
else
|
||||
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
|
||||
fi
|
||||
|
||||
/deploy.sh
|
||||
|
||||
# show command version before running it
|
||||
$1 --version
|
||||
|
||||
if [ "$1" == "granian" ]; then
|
||||
echo "Appending static files path to granian command (requires granian >= 2.3.0)"
|
||||
STATIC_ROOT=$(python -c 'import os; import pkmntrade_club; from django.conf import settings; print(settings.STATIC_ROOT)')
|
||||
set -- "$@" --static-path-mount "$STATIC_ROOT"
|
||||
fi
|
||||
|
||||
echo "Environment is correct - executing command: '$@'"
|
||||
exec "$@" && exit 0
|
||||
exec "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue