Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:docker:apps:dokuwiki

Dies ist eine alte Version des Dokuments!


DokuWiki

Image
Docker Hub linuxserver/dokuwiki
GitHub linuxserver/docker-dokuwiki
Architektur x86-64, armhf, arm64
Software
Projekt DokuWiki
GitHub splitbrain/dokuwiki

docker run

Der Container wird wie folgt mit docker run eingerichtet und gestartet:

docker run -d \ 
  --name=dokuwiki \
  -e PUID=2000 \
  -e PGID=2000 \
  -e TZ=Europe/London \
  -p 80:80 \
  -p 443:443 \
  -v /path/to/appdata/config:/config \
  --restart unless-stopped \
  linuxserver/dokuwiki

Parameter

Dies sind die wichtigsten Parameter. Sofern sie mit einem „*“ markiert sind, sollte eine Anpassung erfolgen:

Parameter Funktion
-e PUID= * Vorgabe des Users , mit dem die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e PGID= * Vorgabe des Gruppe , mit der die Daten auf dem Docker-Host in die gemounteten Verzeichnisse geschrieben werden.
-e TZ= * Vorgabe der lokalen Zeitzone im Format Gebiet/Ort.
-e APP_URL Optional: Hier kann der Pfad vorgegeben werden, unter dem das Wiki auf dem Server zu erreichen ist (z.B. http://example.com/wiki statt http://example.com).
-p Port-Zuweisungen für den Zugriff per http (Default 80:80) bzw. https (Default 443:443)
-v * Volumes, siehe Unterabschnitt Volumes

Volumes

In der Konfiguration werden Volumes in der Regel im folgenden Format angegeben:

<Pfad auf dem Host>:<Pfad im Container>[:<Optionen>]

Die Volumes haben die folgenden Funktionen (maßgeblich ist der Pfad im Container):

Pfad im Container Funktion
/config In bzw. unterhalb dieses Ordners befinden sich die Konfigurationsdateien des DokuWiki, des Webservers nginx einschließlich PHP sowie die Inhalte des DokuWikis.

docker-compose

Der Container wird wie folgt in der docker-compose.yml konfiguriert:

docker-compose-yml
version: "2.1"
services:
  dokuwiki:
    image: linuxserver/dokuwiki:XXXXXXXXXXXX
    container_name: dokuwiki
    environment:
      - PUID=2000
      - PGID=2000
      - TZ=Europe/Berlin
    volumes:
      - /path/to/config:/config
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped

Im Hinblick auf mögliche Probleme bei einem unbeabsichtigten Update des Images sollte die Version des Images gepinnt werden.

Integration in Træfik

Der Container kann mit den folgenden Eintragungen in der docker-compose.yml in Træfik integriert werden:

 
...

  dokuwiki:
    image: linuxserver/dokuwiki
    container_name: dokuwiki
    environment:
      - PUID=2000
      - PGID=2000
      - TZ=Europe/Berlin
    volumes:
      - /path/to/config:/config
    restart: unless-stopped
    labels:
     - traefik.http.routers.dokuwiki.rule=Host(`wiki.example.com`)
     - "traefik.http.routers.dokuwiki.tls.certResolver=default"
     - "traefik.http.routers.dokuwiki.tls=true"

Update des Images

Beim Update des Images kann es zu Problemen kommen, sofern sich die DokuWiki-Version im Docker-Image ändert. Es kann zu einem nicht mehr lauffähigen System kommen, weil die u.U. notwendige Migration der persistierten Daten, die sonst anlässlich des Upgrades von DokuWiki durchgeführt wird, in diesem Fall nicht erfolgt ist. In der Folgen passen die Daten dann nicht zur neuen DokuWiki-Version.

Da leider nicht sichergestellt ist, dass von den Maintainern des Images auf eine ggf. neue DokuWiki-Version hingewiesen wird, ist es notwendig, dass bei jeder neuen Imageversion vor dem Einspielen in die Produktionsumgebung geprüft wird, ob das neue Image zu den persistierten Daten kompatibel ist.

Hierbei kann wie folgt vorgegangen werden:

  1. Version des Images in der Produktionsumgebung durch Vorgabe des entsprechenden Tags pinnen.
  2. Bei Verfügbarkeit einer neuen Version des Images diese zunächst in einer getrennten Testinstanz mit den produktiven Daten testen.
  3. Sofern das Testsystem mit der neuen Images-Version nicht mehr lauffähig ist, Roll-Back der Testinstanz auf die bisherige Version vornehmen und das DokuWiki mit „Bordmitteln“ (z.B. mit dem upgrade Plugin) im laufenden Container updaten (ggf. ist es notwendig vorab die produktiven Daten neu vom Produktionssystem abzuziehen und erneut einzuspielen).
  4. Danach erneut neue Image-Version in die Testversion einspielen und testen.
  5. Entsprechend den Ergebnissen aus den Punkten 2-4 das Update der Produktionsumgebung vornehmen und dabei die Version des Images auf die neue Version pinnen.
thoschwiki/docker/apps/dokuwiki.1599298498.txt.gz · Zuletzt geändert: 05.09.2020 11:34 von thosch