From 6b023d2a9499856cadd38a534003847294dc9bcd Mon Sep 17 00:00:00 2001 From: Francesco Frassinelli Date: Mon, 4 Aug 2025 15:55:49 +0200 Subject: [PATCH] Use traefik and standard nginx --- docker-compose.yml | 55 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d3fb3fc2..fa5fbd25 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -67,6 +67,14 @@ services: DJANGO_WAIT_FOR_DATABASE: 1 volumes: - statics:/app/staticfiles + labels: + - "traefik.enable=true" + - "traefik.http.routers.django.rule=PathPrefix(`/`)" + - "traefik.http.routers.django.entrypoints=web" + - "traefik.http.routers.django.priority=1" + - "traefik.http.services.django.loadbalancer.server.port=8000" + - "traefik.http.middlewares.upload-limit.buffering.maxRequestBodyBytes=8000000000" + - "traefik.http.routers.django.middlewares=upload-limit" django-dev: <<: *django-dev @@ -78,6 +86,14 @@ services: DJANGO_MIGRATE: 1 DJANGO_WAIT_FOR_DATABASE: 1 LIVE_SERVER_URL: http://django:8000 + labels: + - "traefik.enable=true" + - "traefik.http.routers.django-dev.rule=PathPrefix(`/`)" + - "traefik.http.routers.django-dev.entrypoints=web" + - "traefik.http.routers.django-dev.priority=1" + - "traefik.http.services.django-dev.loadbalancer.server.port=8000" + - "traefik.http.middlewares.upload-limit-dev.buffering.maxRequestBodyBytes=8000000000" + - "traefik.http.routers.django-dev.middlewares=upload-limit-dev" queue: <<: *django-prod @@ -111,26 +127,33 @@ services: ports: - 5432:5432 - nginx: - build: - context: ./nginx - profiles: - - prod - volumes: - - statics:/statics + traefik: + image: traefik:v3.0 + command: + - --api.insecure=true + - --providers.docker=true + - --providers.docker.exposedbydefault=false + - --entrypoints.web.address=:80 ports: - - 8000:80 + - "8000:80" + - "8080:8080" + volumes: + - ${DOCKER_SOCK:-/var/run/docker.sock}:/var/run/docker.sock:ro - nginx-dev: - hostname: nginx + static: + image: nginx:alpine profiles: - - dev - build: - context: ./nginx + - prod volumes: - - ./media:/media_files - ports: - - 8000:80 + - ./static:/usr/share/nginx/html/static:ro + - ./media:/usr/share/nginx/html/media:ro + labels: + - "traefik.enable=true" + - "traefik.http.routers.static.rule=PathPrefix(`/static/`) || PathPrefix(`/media/`)" + - "traefik.http.routers.static.entrypoints=web" + - "traefik.http.routers.static.priority=10" + - "traefik.http.services.static.loadbalancer.server.port=80" + - "traefik.http.routers.static.middlewares=static-stripprefix" frontend: profiles: