Wie man WordPress lokal mit docker compose aufsetzt

Wieso so?

Um eine reproduzierbare Entwicklungs – Umgebung zu haben, ist es gut das Aufsetzen dieser Umgebung automatisch tun zu können. Dazu kann man docker compose benutzen. Hier zeige Ich euch ein docker-compose.yml, welches ein guter Startpunkt ist für eine reproduzierbare Entwicklungsumgebung.
Wir Benutzen hier als Stack

- wordpress:6.5.4-php8.1-apache
- mariadb:10.6.4-focal
- traefik:v3.0.3

Die docker-compose.yml können wir mit dem wordpress – Service anfangen:

services:
  wordpress:
      # Am Besten die WordPress - Version festsetzen
    image: wordpress:6.5.4-php8.1-apache
    volumes:
      # Im wp_data Volume liegt der WordPress - Code,
      # So kannst du ihn mit anderen Containern teilen
      - wp_data:/var/www/html
    restart: always
    environment:
      # Hier kannst du durch deine eigenen Werte ersetzen
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wordpress
      - WORDPRESS_DB_NAME=wordpress
    labels:
      # Weiter unten konfigurieren wir dann traefik als Reverse Proxy
      - traefik.enable=true
      - traefik.http.routers.mywordpress.rule=Host(`localhost`)
    networks:
      # Füge dein WordPress dem proxy Netzwerk hinzu:
      - proxy
    # Optional kannst du dir noch den richtigen Hostname geben, 
    # sonst beschwert sich WordPress
    hostname: localhost

Als nächstes kannst du die Datenbank hinzufügen:

  db:
    # Das mariadb image unterstützt amd64 & arm64 architecture
    image: mariadb:11.4.2-noble
    command: '--default-authentication-plugin=mysql_native_password'
    volumes:
      # Deine Datenbank ist unter dem db_data Volume gespeichert
      - db_data:/var/lib/mysql
    restart: always
    environment:
      # Hier kannst du durch deine eigenen Werte ersetzen
      - MYSQL_ROOT_PASSWORD=somewordpress
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wordpress
    expose:
      - 3306
      - 33060
    networks:
      - proxy

Jetzt müssen wir das ganze nur noch um unseren traefik Reverse – Proxy erweitern:

  traefik:
    image: traefik:v3.0.3
    ports:
      - "80:80"
      - "8080:8080"
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command:
      # Lokal reicht das http - Setup
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"

  # Mit whoami kannst du traefik debuggen
  whoami:
    image: traefik/whoami:v1.8
    networks:
      - proxy
    labels:
      - traefik.enable=true
      - traefik.http.routers.mywhoami.rule=Host(`whoami.localhost`)

networks:
  proxy:
    name: proxy

volumes:
  letsencrypt:
    name: letsencrypt
  db_data:
  wp_data:

Nun musst du nur noch docker compose up Auf deinem Terminal ausführen, und dein WordPress wird unter localhost bei dir erreichbar sein!

Happy Coden!
Dein Ruben

Mein Blog

Leave a Reply

Your email address will not be published. Required fields are marked *