12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- version: "3.3"
- services:
- proxy:
- ports:
- - "10000:80"
- command:
- # Enable Docker in Traefik, so that it reads labels from Docker services
- - --providers.docker
- # Add a constraint to only use services with the label for this stack
- # from the env var TRAEFIK_TAG
- - --providers.docker.constraints=Label(`traefik.constraint-label-stack`, `${TRAEFIK_TAG?Variable not set}`)
- # Do not expose all Docker services, only the ones explicitly exposed
- - --providers.docker.exposedbydefault=false
- # Disable Docker Swarm mode for local development
- # - --providers.docker.swarmmode
- # Enable the access log, with HTTP requests
- - --accesslog
- # Enable the Traefik log, for configurations and errors
- - --log
- # Enable the Dashboard and API
- - --api
- # Enable the Dashboard and API in insecure mode for local development
- - --api.insecure=true
- labels:
- - traefik.enable=true
- - traefik.http.routers.${STACK_NAME?Variable not set}-traefik-public-http.rule=Host(`${DOMAIN?Variable not set}`)
- - traefik.http.services.${STACK_NAME?Variable not set}-traefik-public.loadbalancer.server.port=80
- flower:
- ports:
- - "5555:5555"
- backend:
- volumes:
- - ./backend/app:/app
- - /${BACKEND_ZIP_STORAGE}:/app/${BACKEND_ZIP_STORAGE}
- - /${BACKEND_VIDEO_STORAGE}:/app/${BACKEND_VIDEO_STORAGE}
- environment:
- - SERVER_HOST=http://${DOMAIN?Variable not set}
- build:
- context: ./backend
- dockerfile: backend.dockerfile
- args:
- INSTALL_DEV: ${INSTALL_DEV-true}
- INSTALL_JUPYTER: ${INSTALL_JUPYTER-false}
- # command: bash -c "while true; do sleep 1; done" # Infinite loop to keep container live doing nothing
- command: /start-reload.sh
- labels:
- - traefik.enable=true
- - traefik.constraint-label-stack=${TRAEFIK_TAG?Variable not set}
- - traefik.http.routers.${STACK_NAME?Variable not set}-backend-http.rule=PathPrefix(`/api`) || PathPrefix(`/docs`) || PathPrefix(`/redoc`)
- - traefik.http.services.${STACK_NAME?Variable not set}-backend.loadbalancer.server.port=80
- gpuceleryworker:
- volumes:
- - ./backend/app:/app
- - /${CELERY_ZIP_STORAGE}:/${CELERY_ZIP_STORAGE}
- - /${CELERY_VIDEO_STORAGE}:/${CELERY_VIDEO_STORAGE}
- environment:
- - RUN=celery worker -A app.worker -l info -Q main-queue -c 1
- build:
- context: ./backend
- dockerfile: gpuceleryworker.dockerfile
- args:
- INSTALL_DEV: ${INSTALL_DEV-true}
- INSTALL_JUPYTER: ${INSTALL_JUPYTER-false}
- networks:
- traefik-public:
- # For local dev, don't expect an external Traefik network
- external: false
|