{{tag>sysadmin docker install dokuwiki}}
====== Installer Dokuwiki via Docker ======
Récupérer une image, ici on utilise celle proposée par bitnami:
docker image pull bitnami/dokuwiki:latest
Pour tester rapidement l'application, créer un conteneur
docker container run --rm -it -p 9090:8080 --env ALLOW_EMPTY_PASSWORD=yes bitnami/dokuwiki
===== Service autonome avec docker-compose =====
==== Persistance des données ====
Créer un volume qui stockera les données
docker volume create dokuwiki_datavol
version: "3.3"
services:
dokuwiki_standalone:
container_name: dokuwiki_standalone
restart: unless-stopped
image: bitnami/dokuwiki:latest
ports:
- "127.0.0.1:9090:8080/tcp"
#- "127.0.0.1:443:8443/tcp"
environment:
- DOKUWIKI_USERNAME=admin
- DOKUWIKI_FULL_NAME=Administrator
- DOKUWIKI_PASSWORD=admintest
- DOKUWIKI_EMAIL=noreply@localdomain
- DOKUWIKI_WIKI_NAME=Localdoc
#- PHP_ENABLE_OPCACHE=indef
#- PHP_EXPOSE_PHP=indef
#- PHP_MAX_EXECUTION_TIME=indef
#- PHP_MAX_INPUT_TIME=indef
#- PHP_MAX_INPUT_VARS=indef
#- PHP_MAX_INPUT_VARS=indef
- PHP_MEMORY_LIMIT=64M
- PHP_POST_MAX_SIZE=16M
- PHP_UPLOAD_MAX_FILESIZE=16M
volumes:
- type: volume
source: dokuwiki_datavol
target: /bitnami/dokuwiki
networks:
- labinfo
volumes:
dokuwiki_datavol:
external: true
networks:
labinfo:
external:
name: labinfo
# vérifie la syntaxe
docker-compose config
# lance le service
docker-compose up --detach dokuwiki_standalone
# vérifier l'état
docker-compose ps
===== Sauvegarder le volume =====
Les données sont enregistrée dans le volume "dokuwiki_datavol". Pour sauvegarder le contenu du volume, on utilise un conteneur temporaire montant en lecture seule le volume et créant une archive dans le répertoire backup du répertoire courant.
docker container run --rm --interactive --tty --volume dokuwiki_datavol:/mnt/datavol:ro --volume $(pwd)/backup:/mnt/backup busybox:latest /bin/tar -cvzf /mnt/backup/full-26072021.tgz /mnt/datavol
===== Restaurer une sauvegarde =====
Pour restaurer une sauvegarde:
- Créer un nouveau volume;
- Décompresser l'archive de sauvegarde dans le nouveau volume;
- Modifier le docker-compose pour monter le nouveau volume;
- Relancer le service.
# creation du volume
$ docker volume create dokuwiki_datavol_08082021
$ docker volume list | grep dokuwiki
local dokuwiki_datavol
local dokuwiki_datavol_08082021
# Décompresser l'archive de sauvegarde dans ce nouveau volume
$ docker container run -it --rm --volume dokuwiki_datavol_08082021:/mnt/target --volume /home/yoann/dev/docker/dokuwiki/backup/full-08-08-2021.tgz:/mnt/backup.tgz:ro busybox:latest /bin/tar -xvf /mnt/backup.tgz --directory=/mnt/target --strip-components=2
# Modifier le fichier docker-compose pour que le service utilise le nouveau volume
# ici "dokuwiki_datavol_08082021"
$ grep -i "volumes:" --line-number --after-context=3 ./docker-compose.yml
27: volumes:
28- - type: volume
29- source: dokuwiki_datavol_08082021
30- target: /bitnami/dokuwiki
--
36:volumes:
37- dokuwiki_datavol_08082021:
38- external: true
39-
# relancer le service
$ docker-compose up -d dokuwiki_standalone
Creating dokuwiki_standalone ... done
===== Mises à jour de dokuwiki =====
Pour mettre à jour l'application:
# Récupérer l'image la plus récente
docker pull bitnami/dokuwiki:latest
# Arrêter le conteneur en cours d’exécution
docker-compose stop dokuwiki_standalone
# de préférence faire une sauvegarde
# Supprimer le conteneur
docker-compose rm -v dokuwiki_standalone
# Mettre à jour la version de l'image dans docker-compose.yml et relancer le service
docker-compose up -d dokuwiki_standalone
===== Application derriere Traefik =====
===== Références =====
* https://hub.docker.com/r/bitnami/dokuwiki
* https://github.com/bitnami/bitnami-docker-apache#full-configuration