Dieser Beitrag zeigt, wie man WordPress unter Docker betreibt. Die Vorteile liegen auf der Hand:

  • WordPress Projekte lassen sich schnell lokal erstellen und anschliessend z.B. per All In One WP-Migration auf einen Webspace migrieren.
  • WordPress kann sehr schnell geklont werden, ideal z.B. zum Testen verschiedener Themes oder Plugins.
  • Schnelles sichern und Rücksichern des aktuellen Stands einer WordPress-Installation.

WordPress dockerized

WordPress benötigt MySQL bzw. MariaDB als Datenbank, was 2 Container im Verbund erfordert:

  1. WordPress samt Apache und PHP
  2. MariaDB

Dazu legen wir zuerst die folgende Verzeichnisstruktur an:

Docker benötigt diese Ordner um Änderungen in WordPress und der Datenbank persistent zu speichern.

Im gleichen Ordner wie unser “docker”-Verzeichnis erstellen wir eine Datei namens docker-compose.yml mit folgendem Inhalt:

# wordpress 1.0.0
#
# Runs WordPress with MariaDB
#
# Full docs see
# https://hub.docker.com/r/bitnami/wordpress/
#
# Connect with http://127.0.0.1
#
# Backend:
# http://127.0.0.1/wp-admin
# Usr: user
# Pwd: bitnami
#
# Database:
# Host: 127.0.0.1
# Usr: root
# Pwd: NONE
#
# (C)2021 Harald Schneider
#
version: '2'
services:

  mariadb-wordpress:
    image: docker.io/bitnami/mariadb:10.3
    volumes:
      - './docker/mariadb_data:/bitnami/mariadb'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_wordpress
      - MARIADB_PASSWORD=bitnami
      - MARIADB_DATABASE=bitnami_wordpress
    ports:
      - '3306:3306'

  wordpress:
    image: docker.io/bitnami/wordpress:5
    ports:
      - '80:8080'
      - '443:8443'
    volumes:
      - './docker/wordpress_data:/bitnami/wordpress'
    depends_on:
      - mariadb-wordpress
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - WORDPRESS_DATABASE_HOST=mariadb-wordpress
      - WORDPRESS_DATABASE_PORT_NUMBER=3306
      - WORDPRESS_DATABASE_USER=bn_wordpress
      - WORDPRESS_DATABASE_PASSWORD=bitnami
      - WORDPRESS_DATABASE_NAME=bitnami_wordpress
      - PHP_MAX_EXECUTION_TIME=180
      - PHP_MAX_INPUT_TIME=180
      - PHP_MAX_INPUT_VARS=10000
      - PHP_POST_MAX_SIZE=16M
      - PHP_UPLOAD_MAX_FILESIZE=16M

volumes:
  mariadb_data:
    driver: local
  wordpress_data:
    driver: local

Danach starten wir den Container-Verbund mit

docker compose up -d

und melden uns über die URL http://127.0.0.1/wp-admin mit Usernamen “user” und Passwort “bitnami” am Backend von WordPress an. Zum Frontend geht es mit http://127.0.0.1. Beenden können wir das Ganze jederzeit mit

docker compose down

Viel Spaß mit Docker und WordPress :-)