I'm running Traefik v2.0 in a docker environment, but I'd like to expose a node app I'm running on port 5000 outside of docker with pm2 as well.
My current setup:
docker-compose.yml for Traefik:
version: '3'
services:
traefik:
image: traefik:v2.0
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
- ./data/config.yml:/config.yml:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.com`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=user:password"
- "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.rule=Host(`traefik.domain.com`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
Config.yml file:
http:
routers:
my_app:
entryPoints:
- "https"
rule: "Host(`my_app.domain.com`)"
tls:
certResolver: http
service: my_app
services:
my_app:
loadBalancer:
servers:
- url: "http://127.0.0.1:5000"
middlewares:
https-redirect:
redirectScheme:
scheme: https
I've tried different url's like http://127.0.0.1:5000, http://localhost:5000 and the docker local ip, but they all end up with "Bad Gateway".