WordPress muss häufig intern über Curl auf die eigene Webseite zugreifen. Wenn es in Docker hinter einem Reverse-Proxy läuft, der das SSL übernimmt, dann funktionieren die normalen Wege nicht, da im Container selbst nur HTTP statt HTTPS läuft.
Man muss also den Zugriff auf die eigene Webseite auf den internen Docker-HTTPS- Port des Traefik-Containers umleiten. Wenn der Container immer die gleiche IP erhält, dann kann man dies durch einen „Extra_Hosts“ Eintrag in der docker-compose.yml ermöglichen:
services:
wordpress:
image: wordpress:latest
container_name: wordpress-contoso
restart: always
networks:
- intern
- web
ports:
- 80
extra_hosts:
- "www.contoso.de:172.19.0.7"
Aber bei einem Restart des Traefik-Containers kann sich diese IP ändern. Somit müsste dann der extra_hosts Eintrag im WordPress-Container ebenfalls geändert werden.
Besser ist es beim Start des WordPress-Containers über ein Skript die IP des Traefik-Containers ermitteln zu lassen und diese in die Hosts-Datei einzutragen.
services:
wordpress:
image: wordpress:latest
container_name: wordpress-contoso
restart: always
networks:
- intern
- web
ports:
- 80
entrypoint: >
sh -c 'echo "$(getent hosts traefik-v2 | awk "{print \$1}") www.contoso.de" >> /etc/hosts && docker-entrypoint.sh apache2-foreground'