Docker Traefik Beispiel Wordpress: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| + | Erklärung: | ||
| + | *Wir möchten unsere WordPress-Seite mithilfe von Traefik für die Öffentlichkeit zugänglich machen. | ||
| + | *Die Website soll über die URL "https://wordpress.linugs.de" erreichbar sein. | ||
| + | *Dazu erstellen wir eine Docker-Compose-Datei mit zwei Images: | ||
| + | **Ein Abschnitt mit dem neuesten offiziellen WordPress-Image. | ||
| + | **Ein Abschnitt mit dem neuesten offiziellen MySQL-Image. | ||
| + | |||
| + | ==Wordpress-Image== | ||
| + | *Wir tragen die Verbindungsdaten der MySQL-Datenbank als Umgebungsvariablen ein. | ||
| + | *Wir mounten die WordPress-Dateien nach außen in ein relatives Verzeichnis mit dem Namen "wordpress". | ||
| + | *Dann fügen wir die notwendigen Labels hinzu, um den Port des WordPress-Containers und die Domain zu konfigurieren, unter der wir die Seite erreichen wollen. | ||
| + | *Um sicherzustellen, dass dieser Container mit Traefik und der Datenbank kommunizieren kann, fügen wir die beiden notwendigen Netzwerke hinzu. | ||
| + | *Hier ist der entsprechende Abschnitt der Docker-Compose-Datei: | ||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
| − | |||
| − | |||
| − | |||
| − | |||
wordpress: | wordpress: | ||
image: wordpress | image: wordpress | ||
| Zeile 12: | Zeile 21: | ||
WORDPRESS_DB_PASSWORD: word@press! | WORDPRESS_DB_PASSWORD: word@press! | ||
WORDPRESS_DB_NAME: wordpress | WORDPRESS_DB_NAME: wordpress | ||
| + | depends_on: | ||
| + | - db | ||
volumes: | volumes: | ||
- ./wordpress:/var/www/html | - ./wordpress:/var/www/html | ||
| Zeile 23: | Zeile 34: | ||
networks: | networks: | ||
- traefik-public | - traefik-public | ||
| + | - database-net | ||
| + | </syntaxhighlight> | ||
| + | Gerne! Hier ist eine überarbeitete Version des Textes mit einer Erklärung für das MySQL-Image: | ||
| + | |||
| + | ==MySQL-Image== | ||
| + | *Das MySQL-Image wird verwendet, um eine Datenbank für Wordpress bereitzustellen. | ||
| + | *Wir setzen den Namen der Datenbank, den Benutzernamen und das Passwort als Umgebungsvariablen. | ||
| + | *Schließlich fügen wir auch den Datenbankcontainer zu unserem Netzwerk hinzu, damit er mit dem Wordpress-Container kommunizieren kann. | ||
| + | <syntaxhighlight lang="yaml"> | ||
db: | db: | ||
| − | image: mysql: | + | image: mysql:latest |
restart: always | restart: always | ||
| + | networks: | ||
| + | - database-net | ||
environment: | environment: | ||
MYSQL_DATABASE: wordpress | MYSQL_DATABASE: wordpress | ||
| Zeile 34: | Zeile 56: | ||
volumes: | volumes: | ||
- ./db:/var/lib/mysql | - ./db:/var/lib/mysql | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | Hier ist die gesamte Docker-Compose-Datei mit den Abschnitten für das Wordpress- und MySQL-Image: | ||
| + | <syntaxhighlight lang="yaml"> | ||
| + | version: '3.7' | ||
| + | services: | ||
| + | |||
| + | wordpress: | ||
| + | image: wordpress | ||
| + | restart: always | ||
| + | environment: | ||
| + | WORDPRESS_DB_HOST: db:3306 | ||
| + | WORDPRESS_DB_USER: wordpress | ||
| + | WORDPRESS_DB_PASSWORD: word@press! | ||
| + | WORDPRESS_DB_NAME: wordpress | ||
| + | depends_on: | ||
| + | - db | ||
volumes: | volumes: | ||
| − | + | - ./wordpress:/var/www/html | |
| − | + | labels: | |
| + | - "traefik.enable=true" | ||
| + | - "traefik.http.routers.wordpress.rule=Host(wordpress.linugs.de)" | ||
| + | - "traefik.http.services.wordpress.loadbalancer.server.port=80" | ||
| + | - "traefik.http.routers.wordpress.entrypoints=websecure" | ||
| + | - "traefik.http.routers.wordpress.tls=true" | ||
| + | - "traefik.http.routers.wordpress.tls.certresolver=letsencrypt" | ||
| + | networks: | ||
| + | - traefik-public | ||
| + | - database-net | ||
| + | db: | ||
| + | image: mysql:latest | ||
| + | restart: always | ||
networks: | networks: | ||
| − | + | - database-net | |
| − | + | environment: | |
| + | MYSQL_DATABASE: wordpress | ||
| + | MYSQL_USER: wordpress | ||
| + | MYSQL_PASSWORD: word@press! | ||
| + | MYSQL_RANDOM_ROOT_PASSWORD: '1' | ||
| + | volumes: | ||
| + | - ./db:/var/lib/mysql | ||
| + | volumes: | ||
| + | wordpress: | ||
| + | db: | ||
| + | |||
| + | networks: | ||
| + | traefik-public: | ||
| + | external: true | ||
| + | database-net: | ||
| + | external: false | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Aktuelle Version vom 20. Februar 2023, 08:27 Uhr
Erklärung:
- Wir möchten unsere WordPress-Seite mithilfe von Traefik für die Öffentlichkeit zugänglich machen.
- Die Website soll über die URL "https://wordpress.linugs.de" erreichbar sein.
- Dazu erstellen wir eine Docker-Compose-Datei mit zwei Images:
- Ein Abschnitt mit dem neuesten offiziellen WordPress-Image.
- Ein Abschnitt mit dem neuesten offiziellen MySQL-Image.
Wordpress-Image
- Wir tragen die Verbindungsdaten der MySQL-Datenbank als Umgebungsvariablen ein.
- Wir mounten die WordPress-Dateien nach außen in ein relatives Verzeichnis mit dem Namen "wordpress".
- Dann fügen wir die notwendigen Labels hinzu, um den Port des WordPress-Containers und die Domain zu konfigurieren, unter der wir die Seite erreichen wollen.
- Um sicherzustellen, dass dieser Container mit Traefik und der Datenbank kommunizieren kann, fügen wir die beiden notwendigen Netzwerke hinzu.
- Hier ist der entsprechende Abschnitt der Docker-Compose-Datei:
wordpress:
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: word@press!
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
- ./wordpress:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.wordpress.rule=Host(`wordpress.linugs.de`)"
- "traefik.http.services.wordpress.loadbalancer.server.port=80"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.routers.wordpress.tls=true"
- "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
networks:
- traefik-public
- database-net
Gerne! Hier ist eine überarbeitete Version des Textes mit einer Erklärung für das MySQL-Image:
MySQL-Image
- Das MySQL-Image wird verwendet, um eine Datenbank für Wordpress bereitzustellen.
- Wir setzen den Namen der Datenbank, den Benutzernamen und das Passwort als Umgebungsvariablen.
- Schließlich fügen wir auch den Datenbankcontainer zu unserem Netzwerk hinzu, damit er mit dem Wordpress-Container kommunizieren kann.
db:
image: mysql:latest
restart: always
networks:
- database-net
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: word@press!
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db:/var/lib/mysql
Hier ist die gesamte Docker-Compose-Datei mit den Abschnitten für das Wordpress- und MySQL-Image:
version: '3.7'
services:
wordpress:
image: wordpress
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: word@press!
WORDPRESS_DB_NAME: wordpress
depends_on:
- db
volumes:
- ./wordpress:/var/www/html
labels:
- "traefik.enable=true"
- "traefik.http.routers.wordpress.rule=Host(wordpress.linugs.de)"
- "traefik.http.services.wordpress.loadbalancer.server.port=80"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.routers.wordpress.tls=true"
- "traefik.http.routers.wordpress.tls.certresolver=letsencrypt"
networks:
- traefik-public
- database-net
db:
image: mysql:latest
restart: always
networks:
- database-net
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: word@press!
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db:/var/lib/mysql
volumes:
wordpress:
db:
networks:
traefik-public:
external: true
database-net:
external: false