Docker Traefik Beispiel Wordpress: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 1: | Zeile 1: | ||
| + | =Erklärung= | ||
| + | *Wir wollen mithilfe von Traefik unsere Wordpresseite für die Außenwelt verfügbar machen. | ||
| + | *Die Website soll über die url "https://wordpress.linugs.de" erreichbar sein. | ||
| + | *Dafür erstellen wir eine Docker-Compose Datei mit zwei Images. | ||
| + | **Ein Abschnitt mit dem neusten offizellen Wordpress Image | ||
| + | **Ein Abschnitt mit dem neusten offizellen Mysql Image. | ||
| + | ==Wordpress Image== | ||
| + | *Bei dem Wordpress Image tragen wir nun als Environment Variablen die Verbindungsinfomationen der Mysql Datenbank ein. | ||
| + | *Wir Mounten die Wordpress Dateien nach außen, in ein relatives Verzeichniss mit dem Namen "wordpress" | ||
| + | *Danach können wir uns zu den "lables" bewegen, dort werden der Port des Wordpress Containers und die Domain unter, der wir die Seite erreichen wollen eingtragen. | ||
| + | *Damit dieser Container nun mit Traefik und der Datenbank komunizieren kann, fügen wir noch die beiden notwendigen Netzwerke hinzu. | ||
| + | <syntaxhighlight lang="yaml"> | ||
| + | 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 | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | |||
| + | |||
<syntaxhighlight lang="yaml"> | <syntaxhighlight lang="yaml"> | ||
version: '3.7' | version: '3.7' | ||
Version vom 20. Februar 2023, 08:15 Uhr
Erklärung
- Wir wollen mithilfe von Traefik unsere Wordpresseite für die Außenwelt verfügbar machen.
- Die Website soll über die url "https://wordpress.linugs.de" erreichbar sein.
- Dafür erstellen wir eine Docker-Compose Datei mit zwei Images.
- Ein Abschnitt mit dem neusten offizellen Wordpress Image
- Ein Abschnitt mit dem neusten offizellen Mysql Image.
Wordpress Image
- Bei dem Wordpress Image tragen wir nun als Environment Variablen die Verbindungsinfomationen der Mysql Datenbank ein.
- Wir Mounten die Wordpress Dateien nach außen, in ein relatives Verzeichniss mit dem Namen "wordpress"
- Danach können wir uns zu den "lables" bewegen, dort werden der Port des Wordpress Containers und die Domain unter, der wir die Seite erreichen wollen eingtragen.
- Damit dieser Container nun mit Traefik und der Datenbank komunizieren kann, fügen wir noch die beiden notwendigen Netzwerke hinzu.
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
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