pilasguru icon

Traefik + app docker-compose.yaml

pilasguru | PRO | 09/22/21 08:27:26 PM UTC (Edited) | 0 ⭐ | 2101 👁️ | Never ⏰ | []
YAML |

2.32 KB

|

None

|

0 👍

/

0 👎

version: '3'
 
services:

  # requires $PWD/conf/traefik.yml and $PWD/conf/acme.json 
  # $PWD/conf/acme.json must be an empty file with 600 perms
  traefik:
    image: traefik:v2.1
    container_name: traefik
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    ports:
      - 80:80
      - 443:443
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - $PWD/conf/traefik.yml:/traefik.yml:ro
      - $PWD/conf/acme.json:/acme.json
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.entrypoints=http"
      - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
      - "traefik.http.routers.traefik-secure.entrypoints=https"
      - "traefik.http.routers.traefik-secure.tls=true"
      - "traefik.http.routers.traefik-secure.tls.certresolver=http"
      - "traefik.http.routers.traefik-secure.service=api@internal"
      - "traefik.http.routers.traefik-secure.rule=Host(`traefik.c.uy`)"
      - "traefik.http.routers.traefik.rule=Host(`traefik.c.uy`)"
 
  app:
    image: nginx:alpine
    expose:
      - 80
    restart: unless-stopped
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.r-app.entrypoints=http"
      - "traefik.http.routers.r-app.rule=Host(`r.c.uy`)"
      - "traefik.http.middlewares.r-app-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.r-app.middlewares=r-app-https-redirect"
      - "traefik.http.routers.r-app-secure.entrypoints=https"
      - "traefik.http.routers.r-app-secure.rule=Host(`r.c.uy`)"
      - "traefik.http.routers.r-app-secure.tls=true"
      - "traefik.http.routers.r-app-secure.tls.certresolver=http"
      - "traefik.http.routers.r-app-secure.service=r-app"
      - "traefik.http.services.r-app.loadbalancer.server.port=80"
 
----
traefik.yml
----
#debug: "true"
#logLevel: "DEBUG"
 
api:
  dashboard: true
 
entryPoints:
  http:
    address: ":80"
  https:
    address: ":443"
 
providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
 
certificatesResolvers:
  http:
    acme:
      email: [email protected]
      storage: acme.json
      httpChallenge:
        entryPoint: http

Comments