Tout d'abord, je suis désolé si je n'utilise pas les bons termes pour poser cette question, mais je ne suis pas à la hauteur de la terminologie en place.
J'ai traefik exécuté dans un conteneur de docker et servant certains services avec l'option PathPrefix, par exemple, www.myserver.com/wordpress redirige vers un conteneur de docker exécutant wordpress.
Mais comment puis-je le rediriger vers l'extérieur d'un conteneur Docker? Plus précisément, comment puis-je obtenir www.myserver.com pour rediriger vers le port 8080 dans ma machine pour servir un service que j'y exécute dans le système d'exploitation hôte (pas dans un conteneur Docker)?
C'est mon traefik.toml
:
logLevel = "DEBUG"
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
compress = false
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
#onDemand = true
[[acme.domains]]
main = "www.myserver.com"
[web]
address = ":8888"
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "www.myserver.com"
watch = true
exposedbydefault = false
Et mon docker-compose.yml
pour le conteneur traefik:
version: "2"
services:
traefik:
image: traefik
network_mode: "Host"
ports:
- "80:80"
- "443:443"
- "8888:8888"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${SERVER_DIR}/AppData/traefik:/etc/traefik/
- ${PWD}/acme.json:/acme.json
- ${PWD}/traefik.toml:/etc/traefik/traefik.toml
- ${PWD}/servers.toml:/etc/traefik/servers.toml
restart: never
J'ai tripoté et trouvé la réponse.
Dans traefik.toml
ajouter:
################################################################
# File configuration backend
################################################################
# Enable file configuration backend
# Optional
[file]
filename = "servers.toml"
# Enable watch file changes
watch = true
Dans docker-compose.yml
changer la volumes:
à:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ${SERVER_DIR}/AppData/traefik:/etc/traefik/
- ${PWD}/acme.json:/acme.json
- ${PWD}/traefik.toml:/etc/traefik/traefik.toml
- ${PWD}/servers.toml:/servers.toml
Ajouter le fichier servers.toml
:
loglevel = "ERROR"
[backends]
[backends.nasweb]
[backends.nasweb.servers.nasweb]
url = "http://192.168.1.11:8080"
[frontends]
[frontends.domain]
backend = "nasweb"
[frontends.domain.routes.domain]
rule = "Host:www.myserver.com"