version: '3.7' services: traefik: image: "traefik:v2.4" command: - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" ports: - "8080:8080" - "80:80" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" rp3-data-viewer: image: rp3-data-viewer container_name: rp3-data-viewer build: context: .. dockerfile: docker/Dockerfile command: streamlit run main.py --server.port 8080 --server.runOnSave true environment: - PYTHONDONTWRITEBYTECODE=1 volumes: - ../app:/app depends_on: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.rp3-data-viewer.rule=Host(`rp3-data-viewer.localhost`)" - "traefik.http.routers.rp3-data-viewer.entrypoints=web" # Source: https://swagger.io/docs/open-source-tools/swagger-ui/usage/cors/ - "traefik.http.middlewares.corsheaders.headers.accesscontrolallowmethods=GET,OPTIONS,POST,PUT,DELETE" - "traefik.http.middlewares.corsheaders.headers.accesscontrolalloworiginlist=*" - "traefik.http.middlewares.corsheaders.headers.accessControlAllowHeaders=Content-Type, api_key, Authorization, caller_id" - "traefik.http.middlewares.corsheaders.headers.accesscontrolmaxage=100" - "traefik.http.middlewares.corsheaders.headers.addvaryheader=true" - "traefik.http.routers.rp3-data-viewer.middlewares=corsheaders@docker"