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
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
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
Pour restaurer une sauvegarde:
# 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
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