version: '3.4' services: www: deploy: replicas: 1 mode: replicated placement: constraints: - node.role == manager - node.hostname == swarm image: nginx # container_name: nginx_www # restart: "no" # environment: volumes: - www-html:/usr/share/nginx/html:ro - www-conf:/etc/nginx/conf.d:ro - www-backups:/srv/backups - /etc/localtime:/etc/localtime # command: [nginx-debug, '-g', 'daemon off;'] networks: # - traefik-external - traefik-network # ports: # - "8006:80" labels: ## odamus.com - "traefik.enable=true" - traefik.docker.network=traefik-network - traefik.constraint-label=traefik-network ## http # - traefik.http.routers.nginx-www-http.rule=Host(`www.odamus.com`) || Host(`odamus.com`) # - traefik.http.routers.nginx-www-http.entrypoints=web ## http redirect to www # - "traefik.http.routers.nginx-www-http.middlewares=web-to-www-redirect" # - "traefik.http.middlewares.web-to-www-redirect.redirectregex.regex=^http://(?:www.)?odamus.com/(.*)" # - "traefik.http.middlewares.web-to-www-redirect.redirectregex.replacement=http://www.odamus.com/$${1}" ## http to https # - traefik.http.routers.nginx-www-http.middlewares=http-to-https ## https - traefik.http.routers.nginx-www-https.rule=Host(`www.odamus.com`) || Host(`odamus.com`) - traefik.http.routers.nginx-www-https.entrypoints=websecure - "traefik.http.routers.nginx-www-https.tls.certresolver=mychallenge" ## https redirect to www - "traefik.http.routers.nginx-www-https.middlewares=websecure-to-www-redirect" - "traefik.http.middlewares.websecure-to-www-redirect.redirectregex.regex=^https://(?:www.)?odamus.com/(.*)" - "traefik.http.middlewares.websecure-to-www-redirect.redirectregex.replacement=https://www.odamus.com/$${1}" ## service point - traefik.http.services.nginx-www.loadbalancer.server.port=80 - "traefik.http.routers.nginx-www-http.service=nginx-www" - "traefik.http.routers.nginx-www-https.service=nginx-www" volumes: # r-packages: # name: r-packages # external: true www-html: www-conf: www-backups: networks: # network: # traefik-external: # external: # name: traefik-external traefik-network: external: true