# Development override: point the web service to rad/.env.dev and map nginx to # non-privileged host ports so you can run without sudo. services: web: env_file: - ../.env.dev # Development: run Django's autoreloading development server instead of # the production entrypoint/gunicorn. Mount the repository into the # container so code edits on the host trigger Django's autoreload. entrypoint: ["sh", "-c", "python manage.py collectstatic --noinput && python manage.py runserver 0.0.0.0:8000 --nothreading"] # Clear any command set by the prod compose file (which would be passed # as an extra argument to manage.py). Setting an empty command prevents # the image `command` from being appended to the entrypoint. command: [] volumes: - ../:/usr/src/app:cached # Mount the app log directory so logs are visible on the host at ./logs - ../logs:/var/log/rad - ../../media:/usr/src/app/media - ../../static:/usr/src/app/static - /home/ross/rts:/usr/src/app/rts worker: env_file: - ../.env.dev volumes: - ../:/usr/src/app:cached - ../logs:/var/log/rad - ../../media:/usr/src/app/media - ../../static:/usr/src/app/static - /home/ross/rts:/usr/src/app/rts entrypoint: [ "sh", "-c", "python manage.py migrate --noinput && exec python manage.py db_worker", ] command: [] nginx: # Development nginx override: mount a simplified config that does not # reference LetsEncrypt certs so the container can start without real # certificates present on the host. image: nginx:1.25-alpine volumes: - ../deploy/nginx/dev.conf:/etc/nginx/conf.d/default.conf:ro - ../logs:/var/log/rad:rw - ../../media:/usr/src/app/media:ro - ../../static:/usr/src/app/static:ro - /home/ross/rts:/usr/src/app/rts:ro # No additional volumes required for local dev