So stellen Sie WordPress schnell als Docker-Container bereit

0
304
monticello/Shutterstock.com

WordPress ist das beliebteste Content-Management-System. Es ist in PHP geschrieben, speichert Daten in einer MySQL-Datenbank und läuft normalerweise hinter einem Apache-Webserver. Diese Abhängigkeiten fügen Ihrem System mehrere Pakete hinzu und können im Laufe der Zeit schwierig zu verwalten sein. So starten Sie schnell eine containerisierte WordPress-Installation mit dem offiziellen Docker-Image.

Erste Schritte

Das Ausführen von WordPress in Docker erfordert zwei separate Container: einen Webcontainer, auf dem Apache und PHP ausgeführt werden, und einen Datenbankcontainer, der MySQL hostet. Sie müssen auch Docker-Volumes für die WordPress-Datenverzeichnisse einrichten. In diesen werden Ihre Konfigurationsdateien und hochgeladenen Medien gespeichert, damit sie über Container-Neustarts hinweg bestehen bleiben.

Stellen Sie sicher, dass Docker und Docker Compose installiert sind, bevor Sie fortfahren. Obwohl Sie die Docker-CLI allein verwenden können, erleichtert Compose die Definition der beiden Dienste, ihrer Abhängigkeiten und Ihrer Volumes. Sie können den gesamten Stapel mit einem einzigen Befehl aufrufen.

Basisbilder

Das offizielle WordPress Docker-Image ist in vielen verschiedenen getaggten Varianten verfügbar. Diese decken das Spektrum der verfügbaren WordPress- und PHP-Versionen ab. Wenn Sie das neueste Tag verwenden, erhalten Sie die aktuelle WordPress-Version mit der neuesten PHP-Version.

Für mehr Kontrolle über Ihre Bereitstellung verwenden Sie eine bestimmte WordPress- und PHP-Version. Hier einige Beispiele:

  • wordpress:5.7 – WordPress 5.7 mit dem neuesten PHP.
  • wordpress:php7.4 – PHP 7.4 mit dem neuesten WordPress.
  • wordpress:5.7-php7.4 – WordPress 5.7 mit PHP 5.4.

Werbung

Eine vollständige Liste der unterstützten Tags wird auf Docker Hub angeboten. Neben Versions-Pinning-Unterstützung sind auch Image-Varianten für Apache, FPM und Alpine verfügbar.

Images werden mit brauchbaren Standardeinstellungen vorkonfiguriert geliefert. Sie können Ihre eigenen php.ini-Einstellungen hinzufügen, indem Sie eine kompatible Datei in das Verzeichnis $PHP_INI_DIR/conf.d innerhalb des WordPress-Containers kopieren.

Deploying Your Stack

Erstellen Sie ein neues Verzeichnis für Ihre Site und fügen Sie dann eine docker-compose.yml-Datei hinzu. Fügen Sie den folgenden Inhalt ein:

Version: "3" Dienste: WordPress: Image: WordPress:5.7-php7.4 Neustart: Es sei denn-stopped Ports: – 80 Umgebung: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: Benutzername WORDPRESS_DB_PASSWORD: Passwort WORDPRESS_DB_NAME: WordPress Volumes: – wordpress:/var/www/html mysql: image : mysql:5.7 Neustart: wenn nicht gestoppt Umgebung: MYSQL_DATABASE: WordPress MYSQL_USER: Benutzername MYSQL_PASSWORD: Passwort MYSQL_RANDOM_ROOT_PASSWORD: "1" Volumen: – mysql:/var/lib/mysql Volumen: WordPress: mysql:

Diese Compose-Datei definiert einen minimalen Stack mit den erforderlichen WordPress- und MySQL-Diensten. Die Datenbankverbindung wird über Umgebungsvariablen konfiguriert. Sie sollten den Benutzernamen und das Kennwort der Datenbank in eigene sichere Werte ändern. Denken Sie daran, die Änderungen auf beide Servicedefinitionen anzuwenden.

Die Dienste werden automatisch neu gestartet, es sei denn, sie wurden manuell beendet. Dadurch wird sichergestellt, dass Ihre Site beim Neustart des Hostsystems automatisch wiederhergestellt wird.

Das gesamte WordPress-Installationsverzeichnis wird in ein Volume gemountet. Mit diesem Ansatz wird sichergestellt, dass alle Ihre WordPress-Inhalte außerhalb des Containers beibehalten werden, einschließlich Konfiguration, Designs, Plugins und Uploads. Außerdem können Sie den WordPress-Selbstaktualisierer über das Admin-Panel verwenden. Wenn Sie nur die Datenverzeichnisse in ein Volume gemountet haben, gehen alle vom Self-Updater vorgenommenen Quelländerungen nach einem Neustart des Containers verloren.

Werbung

Stellen Sie den Stack bereit, indem Sie docker-compose up -d . ausführen . Sie können sich bei WordPress anmelden, indem Sie in Ihrem Browser http://localhost aufrufen. Wenn ein “Fehler beim Herstellen der Datenbankverbindung” Nachricht, warten Sie einen Moment, bevor Sie es erneut versuchen. Die Bereitstellung der ersten Datenbank kann einige Sekunden dauern.

Klicken Sie sich durch den Standard-WordPress-Setup-Assistenten, um Ihre Site zu konfigurieren. Sie müssen ein anfängliches Administratorbenutzerkonto einrichten. Diese Anmeldeinformationen sollten sich von denen Ihrer MySQL-Datenbank unterscheiden. Das WordPress-Anmeldeformular wird angezeigt, wenn Sie fertig sind. Verwenden Sie Ihr neues Admin-Konto, um sich beim Admin-Dashboard anzumelden.

Nächste Schritte

Ihre WordPress-Installation ist jetzt einsatzbereit. Fügen Sie Beiträge, Seiten, Themen und Plugins über die Admin-Oberfläche hinzu, genau wie bei einer reinen WordPress-Installation.

Es wird empfohlen, dass Sie einige grundlegende Sicherheitsschritte ausführen, um Ihre Website zu reduzieren& #8217;s Risiko eines Angriffs. Sie sollten auch sicherstellen, dass Sie über eine Backup-Routine verfügen. Dies muss die MySQL-Datenbank und Ihr WordPress-Upload-Verzeichnis, wp-content, abdecken.

Konfiguration mit Docker-Geheimnissen

Die Verwendung von Umgebungsvariablen für die Konfiguration ist für die lokale Verwendung ausreichend. Docker-Secrets werden ebenfalls unterstützt, was Ihnen mehr Sicherheit in Umgebungen bietet, auf die andere Mitarbeiter zugreifen können. Definieren Sie Geheimnisse in Ihrer Compose-Datei und ersetzen Sie WORDPRESS_DB_PASSWORD_FILE durch Variablen wie WORDPRESS_DB_PASSWORD. WordPress lädt den Wert der Variablen aus der geheimen Datei, die Docker einfügt.

Dienste: WordPress: Umgebung: WORDPRESS_DB_PASSWORD_FILE: /run/secrets/WORDPRESS_DB_PASSWORD Geheimnisse: – WORDPRESS_DB_PASSWORD Geheimnisse: WORDPRESS_DB_PASSWORD: Datei: ./db_password

Fügen Sie Ihr Passwort zur Datei db_password in Ihrem Arbeitsverzeichnis hinzu. Es wird als /run/secrets/WORDPRESS_DB_PASSWORD im Container zugänglich sein. WordPress wird angewiesen, diese Datei zu lesen, um das endgültige Datenbankpasswort zu bestimmen.

Hinzufügen Ihrer eigenen Site

Die obigen Schritte führen zu einer neuen WordPress-Installation, die interaktiv über das Admin Center konfiguriert werden kann. Sie können Ihren Container mit einer Reihe von Standarddesigns und Plugins bereitstellen, indem Sie diese in die Verzeichnisse /var/www/html/wp-content/themes und /var/www/html/wp-content/plugins einhängen.

Diese Technik hilft Ihnen auch, ein benutzerdefiniertes Docker-Image für Ihre Site zu erstellen. Verwenden Sie das offizielle WordPress-Image als Basis und kopieren Sie die Assets Ihrer Site in die entsprechenden Verzeichnisse. Hier ein Beispiel dafür, wie Sie ein benutzerdefiniertes Design als gebrauchsfertiges Bild verpacken können:

FROM wordpress:5.7-php7.4-apache KOPIEREN ./theme//var/www/html/wp-content/themes/example-theme/

Ihr Theme wird in jedem Container verfügbar sein, den Sie starten. Diese Methode aktiviert das Design jedoch nicht automatisch. Dazu benötigen Sie einen dritten Dienst, der das WordPress-CLI-Image verwendet.

services: wpcli: image: wordpress:cli-2-php7.4 environment: WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: username WORDPRESS_DB_PASSWORD: password WORDPRESS_DB_NAME: wordpress volume_from: – wordpress:rw

Der CLI-Container benötigt Zugriff auf die Umgebungsvariablen und Volumes, die dem regulären Web-Container zur Verfügung gestellt werden. Umgebungsvariablen müssen dupliziert werden, es sei denn, Sie extrahieren sie in einen wiederverwendbaren YAML-Abschnitt, während Volumes mit volume_from gemountet werden können.

Jetzt können Sie Docker Compose verwenden, um die WordPress-Installation abzuschließen und Ihr Theme zu aktivieren:

docker-compose wpcli core install ausführen –title=”My Site” –admin_user=admin –admin_password=changeme –admin_email=me@example.com –url=localhost –allow-root docker-compose wpcli theme ausführen enable example-theme –allow-root

Diese Schritte können als Teil Ihres Image-Build-Prozesses oder einer CI-Pipeline automatisiert werden. Sie können den endgültigen Container übergeben, um ein eigenständiges Image Ihrer Site zu erstellen, das für die spätere Verwendung bereit ist.

Schlussfolgerung

Die Verwendung von WordPress mit Docker vermeidet die Verschmutzung Ihres Hostcomputers und hilft Ihnen bei der Containerisierung Ihrer Site und ihrer Konfiguration. Wenn du deine Dienste als Docker Compose-Datei definierst, kannst du schnell neue Instanzen erstellen und deine Mitarbeiter beim Laufen unterstützen.

Werbung

Sobald dein Stack live ist, ähnelt die laufende Wartung einer regulären WordPress-Installation. Halte WordPress, deine Plugins und deine Themes auf dem neuesten Stand und suche proaktiv nach Sicherheitsproblemen.

Eine Docker-spezifische Housekeeping-Aufgabe besteht darin, das WordPress-Basisimage zu aktualisieren. Es empfiehlt sich, regelmäßig das neueste Image abzurufen, damit Sie keine wichtigen Betriebssystem-Patches verpassen. Führen Sie docker-compose up -d –pull aus, um das Image abzurufen und Ihre Dienste neu zu starten.