WordPress in einem Docker Container bereitsstellen

Ich schreibe ab und an ein paar Anleitungen. Da ging es bereits um Nextcloud, Pixelfed oder Mastodon. Nun ein weiteres für WordPress mit eigenem Nginx Client in einem Dockersetup.

Zuerst einen Ordner erstellen. In diesem Fall nehme ich /opt/Wordpress.

a golden docker logo on a black background

Docker-compose einrichten

In dem erstellten Ordner wird nun eine docker-compose.yml erstellt und folgendes eingefügt. Für eine reibungslose Einrichtung von WordPress, stellen Sie sicher, dass alle Details korrekt sind.

version: '3'

services:
wordpress:
image: wordpress:latest
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- ./wp-content:/var/www/html/wp-content
ports:
- 8080:80
links:
- db
db:
image: mysql:5.7
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_RANDOM_ROOT_PASSWORD: '1'
nginx:
image: nginx:latest
ports:
- 80:80
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./wp-content:/var/www/html/wp-content
links:
- wordpress

volumes:
- db_data:/var/lib/mysql
volumes:
db_data:

Hier das Datenbank Passwort, sowie das random_root_password, nach eigenen Wünschen anpassen und die Datei abspeichern.

Nginx config einrichten

Nun eine ’nginx/conf.d/default.conf‘ erstellen und folgenden Inhalt einfügen. Dies erleichtert die Konfiguration mit WordPress erheblich.

server {
listen 80;
server_name domain.tld;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl;
server_name localhost;

root /var/www/html;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ .php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}

Je nachdem ob schon ein Webserver auf 80 und 443 müssen diese Ports abgeändert werden.

Dies sieht in der docker-compose.yml so aus:

  nginx:
image: nginx:latest
ports:
- 4433:443
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./wp-content:/var/www/html/wp-content
links:
- wordpress

In der Default.conf so:

server {
listen 4433 ssl;
server_name domain.tld;

root /var/www/html;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ .php$ {
include fastcgi_params;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

ssl on;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}

Passt alles, muss nur noch der Webserver und die Docker Container mit docker-compose up -d gestartet werden. Abschließend kann dann das eigentliche WordPress Setup gestartet werden. https://domain.tld/wp-admin

Mehr Anleitungen zu allen möglichen Projekten die ich bisher in das Leben gerufen habe, findet ihr unter dem Hashtag “Anleitung” auf meinem Blog. Beispiele sind: Nextcloud, Pixelfed, Gluetun VPN und vieles mehr.

Klicke, um diesen Beitrag zu bewerten!
[Gesamt: 0 Durchschnitt: 0]

Bylars

Ich bin 44 Jahre alt und blogge seit mehreren Jahren. Beruflich bin ich Fachangestellter für Bädeebetriebe und lebe und liebe diesen Beruf in und rundum Fulda. Habe eine Partnerin und liebe genauso meinen Dackel.

Schreibe einen Kommentar

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