WordPress dockerisiert

Die Frau setzt jetzt auch ein Blog auf. Da gerät man schnell ins Spielen. Während dieses Blog hier noch altbacken mit php und mysql auf dem Server läuft habe ich für das neue ein Team aus Dockercontainern aufgesetzt:

Für die automatische Einrichtung ein Trio aus Containern basierend auf diesem compose file:

  • nginx als reverse-proxy
  • jwilder/docker-gen zum automatischen erstellen passender vhost-konfigurationen für den reverse proxy. Einfach die passende Umgebungsvariable -e VIRTUAL_HOST=your.domain.com setzen, und nginx richtet den passenden Vhost ein und leitet ihn auf den exponierten port weiter.
  • jrcs/letsencrypt-nginx-proxy-companion zum automatischen Abruf passender Letsencrypt SSL zertifikate für die erstellten Vhosts.

Darunter dann ein angepasstes docker-compose.yml für das übliche Paar aus WordPress-container und *sql-container. Hauptanpassung (neben dem verschieben des WordPress-folders auf ein directory volume für einfachere anpassungen):

     environment:
       VIRTUAL_HOST: <vhost-1>.de,<vhost-2>.de...
       LETSENCRYPT_HOST: <vhost-1>.de,<vhost-2>.de...
       LETSENCRYPT_EMAIL: <letsencrypt-mail>

Damit funktioniert dann auch das automatische Erstellen eines vhosts.

Die Nginx-reverse-proxy-lösung macht es supereinfach neuen Containern gleich einen funktionierenden Vhost mit SSL zuzuteilen. Dabei braucht man fürs Aufsetzen auch wenig länger als für die manuelle SSL-Konfiguration eines einzelnen Vhosts. Sobald man den zweiten Container mit SSL versorgen möchte oder einen neuen Vhost hinzufügt hat man diese Zeit wieder drin.