Docker Traefik Beispiel Wordpress: Unterschied zwischen den Versionen

Aus Xinux Wiki
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