Vollständiges docker-compose.yml für Traefik, MariaDB & WordPress
Jetzt wird der komplette Stack (Reverse Proxy + Datenbank + WordPress) in einer docker-compose.yml definiert.
Datei:/opt/project-wiki/docker-compose.yml
Bearbeiten:
cd /opt/project-wiki
nano docker-compose.yml
Inhalt (bereinigt aus der Doku):
version: "3.9"
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
command:
- "--configFile=/traefik.yml"
ports:
- "80:80"
- "443:443"
networks:
- web
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./traefik/traefik.yml:/traefik.yml:ro"
- "./traefik/acme.json:/letsencrypt/acme.json"
- "./traefik/dynamic:/dynamic"
db:
image: mariadb:11
container_name: wp-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=superrootpass
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wpuser
- MYSQL_PASSWORD=wppass
volumes:
- ./db:/var/lib/mysql
networks:
- internal
wordpress:
image: wordpress:latest
container_name: wp-site
restart: unless-stopped
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=wpuser
- WORDPRESS_DB_PASSWORD=wppass
- WORDPRESS_DB_NAME=wordpress
depends_on:
- db
networks:
- web
- internal
labels:
- "traefik.enable=true"
- "traefik.docker.network=web"
# Router für euer Wiki (HTTPS)
- "traefik.http.routers.wp.rule=Host(`wiki-projekt1.ddnsgeek.com`)"
- "traefik.http.routers.wp.entrypoints=websecure"
- "traefik.http.routers.wp.tls=true"
- "traefik.http.routers.wp.tls.certresolver=letsencrypt"
# Optionaler HTTP-Router + Redirect-Middleware
- "traefik.http.routers.wp-http.rule=Host(`wiki-projekt1.ddnsgeek.com`)"
- "traefik.http.routers.wp-http.entrypoints=web"
- "traefik.http.routers.wp-http.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
networks:
web:
driver: bridge
internal:
driver: bridge
Was hier passiert:
traefiklauscht auf 80/443 und übernimmt Routing + TLS.dbist eine MariaDB mit eigenem Volume./db.wordpressspricht überinternalmitdbund überwebmit Traefik.- Die
labelskonfigurieren Traefik direkt über Docker-Labels, inkl. HTTPS & Redirect.