Vollständiges docker-compose.yml für Traefik, MariaDB & WordPress

Estimated reading: 2 minutes 7 views

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:

  • traefik lauscht auf 80/443 und übernimmt Routing + TLS.
  • db ist eine MariaDB mit eigenem Volume ./db.
  • wordpress spricht über internal mit db und über web mit Traefik.
  • Die labels konfigurieren Traefik direkt über Docker-Labels, inkl. HTTPS & Redirect.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Share this Doc

Vollständiges docker-compose.yml für Traefik, MariaDB & WordPress

Or copy link

CONTENTS