@zer J'utilise traefik sans définir de conf, et tout marche nickel (voir mon projet https://github.com/Merrick28/seedbox-docker).
Traefik plusieurs services sur le même port
zer Effectivement le fichier de conf n'est pas nécessaire, mais demande de tout foutre dans le compose (perso je pref le fichier de conf)
Glodi avec traefik (ou n'importe quel reverse en general) il n'est pas nécéssaire d'expose les ports (sinon tu perds l'interet du reverse ) Ensuite 6 replicas pour 2 parralelism c'est un peu beaucoup ? :p. Sinon le reste du compose j'ai pas poussé
Oui et non. Ou en tout cas, je n'ai pas réussi à faire passer certains paramètres en command:
. Et ce n'est pas faute d'avoir cherché et testé beaucoup de confs !
Dès qu'on sort d'une conf basique, il vaut mieux passer par le fichier. Et perso, je préfère: plus lisible et mieux catégorisé (je n'utilise pas traefik uniquement avec docker. Dès qu'on multiplie les front/back-ends, c'est vite le bordel si on ne segmente pas tout ! )
Je confirme, dès qu'on sort du full docker, il faut un fichier de conf.
- Modifié
zer Merci de ton aide
Dans le volume traefik, j'ai bien un traefik.toml qui est presque identique au tiens, à l'exception du domaine et du md5.
Je n'avais pas de ports définis au départ, je les ai ajouté "pour voir si ça fonctionnait mieux"... J'ai donc remis le port 80 pour wordpress.
Comment mettre les headers dans le fichier de conf de traefik ? Je n'ai pas trouvé d’exemple sur la doc officielle
arckosfr 6 replicas pour 2 parralelism
Ouais effectivement
- Modifié
Quand je lance mon docker-compose, le conteneur wordpress est en bad gateway. Les logs du conteneur wordpress indiquent : php_network_getaddresses: getaddrinfo failed: Name or service not known
Les logs de traefik indiquent : level=error msg="undefined backend 'backend-wordpress-docker'. J'ai pourtant supprimé le backend wordpress... Voici mon docker-compose :
version: '3.6'
services:
traefik:
hostname: traefik
image: traefik:latest
container_name: traefik
restart: always
domainname: ${DOMAINNAME}
networks:
- default
- traefik_proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
environment:
- OVH_ENDPOINT=${OVH_ENDPOINT}
- OVH_APPLICATION_KEY=${OVH_APPLICATION_KEY}
- OVH_APPLICATION_SECRET=${OVH_APPLICATION_SECRET}
- OVH_CONSUMER_KEY=${OVH_CONSUMER_KEY}
labels:
- "traefik.enable=true"
- "traefik.backend=traefik" # Utile pour le load balancing
# L'adresse sur laquelle l'utilisateur accède à l'application
- "traefik.frontend.rule=Host:toto.${DOMAINNAME}, www.toto.${DOMAINNAME}"
- "traefik.port=8080" # Le port de l'application dans le conteneur
- "traefik.docker.network=traefik_proxy"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.headers.STSSeconds=315360000"
- "traefik.frontend.headers.browserXSSFilter=true"
- "traefik.frontend.headers.contentTypeNosniff=true"
- "traefik.frontend.headers.forceSTSHeader=true"
- "traefik.frontend.headers.SSLHost=richardantoine.fr"
- "traefik.frontend.headers.STSIncludeSubdomains=true"
- "traefik.frontend.headers.STSPreload=true"
- "traefik.frontend.headers.frameDeny=true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik:/etc/traefik
- shared:/shared
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
portainer:
image: portainer/portainer
container_name: portainer
restart: always
command: -H unix:///var/run/docker.sock
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer-data:/data
- shared:/shared
environment:
- TZ=${TZ}
networks:
- traefik_proxy
labels:
- "traefik.enable=true"
- "traefik.backend=portainer"
- "traefik.frontend.rule=Host:toto1.${DOMAINNAME},www.toto2.${DOMAINNAME}"
- "traefik.port=9000"
- "traefik.docker.network=traefik_proxy"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.headers.STSSeconds=315360000"
- "traefik.frontend.headers.browserXSSFilter=true"
- "traefik.frontend.headers.contentTypeNosniff=true"
- "traefik.frontend.headers.forceSTSHeader=true"
- "traefik.frontend.headers.SSLHost=richardantoine.fr"
- "traefik.frontend.headers.STSIncludeSubdomains=true"
- "traefik.frontend.headers.STSPreload=true"
- "traefik.frontend.headers.frameDeny=true"
wordpress:
image: wordpress:latest
container_name: wordpress
restart: always
depends_on:
- wordpress_db
networks:
- traefik_proxy
- internal
environment:
- WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
volumes:
- wp_conf_upload_php:/usr/local/etc/php/conf.d/uploads.ini
- wp_app:/var/www/html # Full wordpress project
labels:
- "traefik.enable=true"
- "traefik.frontend.rule=Host:toto3.${DOMAINNAME}"
- "traefik.port=80"
- "traefik.docker.network=traefik_proxy"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.headers.STSSeconds=315360000"
- "traefik.frontend.headers.browserXSSFilter=true"
- "traefik.frontend.headers.contentTypeNosniff=true"
- "traefik.frontend.headers.forceSTSHeader=true"
- "traefik.frontend.headers.SSLHost=richardantoine.fr"
- "traefik.frontend.headers.STSIncludeSubdomains=true"
- "traefik.frontend.headers.STSPreload=true"
- "traefik.frontend.headers.frameDeny=true"
wordpress_db:
image: mariadb:latest
container_name: wordpress_db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
networks:
- internal
volumes:
- wp_data:/docker-entrypoint-initdb.d
labels:
- traefik.enable=true
nextcloud:
container_name: nextcloud
restart: always
image: linuxserver/nextcloud
volumes:
- nextcloud:/config
- shared_data:/data
- shared:/shared
environment:
- PUID=${PUID}
- PGID=${PGID}
networks:
- traefik_proxy
labels:
- "traefik.enable=true"
- "traefik.backend=nextcloud"
- "traefik.frontend.rule=Host:toto4.${DOMAINNAME}"
- "traefik.port=443"
- "traefik.protocol=https"
- "traefik.docker.network=traefik_proxy"
- "traefik.frontend.headers.SSLRedirect=true"
- "traefik.frontend.headers.STSSeconds=315360000"
- "traefik.frontend.headers.browserXSSFilter=true"
- "traefik.frontend.headers.contentTypeNosniff=true"
- "traefik.frontend.headers.forceSTSHeader=true"
- "traefik.frontend.headers.SSLHost=example.com"
- "traefik.frontend.headers.STSIncludeSubdomains=true"
- "traefik.frontend.headers.STSPreload=true"
- "traefik.frontend.headers.frameDeny=true"
volumes:
traefik:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/traefik
shared:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/shared
organizr:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/organizr
shared_data:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/shared_data
nextcloud:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/nextcloud
podcast_conf:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/podcast
### WORDPRESS ###
wp_app:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/wordpress/app
wp_data:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/wordpress/data
wp_conf_upload_php:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/wordpress/conf
portainer-data:
driver: local
driver_opts:
o: bind
type: none
device: ${USERDIR}/docker/portainer/data
networks:
traefik_proxy:
external:
name: traefik_proxy
internal:
external: false
default:
driver: bridge
Salut, essayez d'utiliser les balises svp, surtout qu'il y a un menu à cliquer maintenant C'est plus simple pour la lecture et la compréhension.
- Modifié
Suite à des recherches sur Internet pour résoudre le problème de backend avec traefik, il s'agirait d'un problème au niveau du nom du frontend.
En effet, le sous-domaine (toto3 dans l’exemple) wordpress comporte un tiret. Quelqu'un a déjà été confronté au problème ?