mirror of
https://github.com/seanmorley15/AdventureLog.git
synced 2026-07-31 15:59:34 -04:00
- Deleted the backup.sh and deploy.sh scripts as they are no longer needed. - Updated documentation to reflect the removal of these scripts and their functionalities. - Cleaned up related GitHub Actions workflows to remove references to the deleted scripts.
Docker
All production images are built from a single Dockerfile with shared stages so frontend, backend, and AIO stay in sync.
Build commands (from repository root)
# Individual images
docker build -f docker/Dockerfile --target frontend -t adventurelog-frontend .
docker build -f docker/Dockerfile --target backend -t adventurelog-backend .
docker build -f docker/Dockerfile --target aio -t adventurelog-aio .
# All app images
docker buildx bake -f docker/docker-bake.hcl
Layout
| Path | Purpose |
|---|---|
Dockerfile |
Multi-target build (frontend, backend, aio) |
docker-bake.hcl |
Optional bake file for all targets |
shared/ |
nginx, supervisord, and entrypoint scripts shared across images |
aio/ |
AIO container entrypoint and env setup scripts |
docker-compose*.yml |
Compose stacks for production, development, Traefik, and CI |
Run compose files from the repository root, for example:
docker compose --env-file .env.aio -f docker/docker-compose.aio.yml up -d
Shared stages
frontend-build— pnpm install, Vite build, production prune (used byfrontendandaio)backend-builder— pip install with GDAL dev headersbackend-runtime— Django app, collectstatic, cron scripts (extended bybackendandaio)
Image-specific layers only add nginx/supervisord configs, entrypoints, and (for AIO) Node + frontend artifacts.
Slimming
Build context exclusions live in the repository root .dockerignore. Never commit local backend/server/media/, .venv/, or staticfiles/ — they are mounted or generated at runtime.