Ceci est une ancienne révision du document !
Table des matières
Notre dokuwiki dans docker
Docker
- Docker sur Wikipedia
- Conteneur sur Wikipedia.
- https://putaindecode.io/articles/introduction-a-docker/ Docker est une plateforme qui va vous permettre d'exécuter votre code à l'intérieur d'un conteneur indépendamment de la machine sur laquelle vous êtes ! Un conteneur ressemble à une machine virtuelle sauf qu'il n'embarque pas tout un système d'exploitation avec lui ce qui lui permet de s'exécuter en quelque secondes et d'être beaucoup plus léger.
Installation de docker
Installation
Pour tester les modifications du code de dokuwiki, on peut utiliser un conteneur docker qui se chargera d'exécuter les modifications en test.
- Cloner le repo contenant le dockerfile
- Checkout la branche dokuwiki_in_volume
- Construire l'image docker
- Démarrer le conteneur docker en fournissant les sources php de dokuwiki et le repertoire de data
- Voir le readme: docker-dokuwiki sur le github de max
Explications des lignes de commandes :
- Avec git on clone un dockerfile
- Avec docker build on construit une image à partir du dockerfile
- Avec docker run on utilise l'image fraichement construite pour lancé un conteneur
git clone https://github.com/mxbossard/docker-dokuwiki.git
cd docker-dokuwiki
Le git comprend 2 branches: master et dokuwiki_in_volume La branche 'dokuwiki_in_volume' est paramétrée pour suivre la branche distante 'dokuwiki_in_volume' depuis 'origin'. Basculement sur la nouvelle branche 'dokuwiki_in_volume'
git checkout dokuwiki_in_volume docker build -t dokuwiki_dev_env .
Puis run décrit ci-dessous.
Avec ressources.labomedia.org
docker run -v /media/data/ressources.labomedia.org/data:/data -v /media/data/ressources.labomedia.org:/var/www -p 8000:8000 --rm dokuwiki_dev_env
–rm supprime le container stocké dans /usr au kill décrit ci-dessous, sinon chaque relance de docker ajoute au système un gros paquet de Go et va remplir votre partition.
Utilisation
Dans un navigateur:
Test de la limitation du nombre de média affichés dans le media manager
Proposition:
- Modification de la fonction de recherche de fichiers pour ajouter une limite optionnelle du nombre de fichiers retournés. https://github.com/splitbrain/dokuwiki/pull/2778
Kill
Pour killer un conteneur, il existe quelques commandes pour lister les conteneurs démarrés et les tuer :
Exemple
toto@127:~$ docker ps
retourne
CONTAINER ID IMAGE COMMAND BLABLA .... f0ea6dc0d062 dokuwiki_dev_env "/entrypoint.sh /usr…" ...........
toto@127:~$ docker kill f0ea6dc0d062
Gestion des volumes
Le montage des volumes avec -v copie le dossier en options dans /usr !!!
WARNING! This will remove all local volumes not used by at least one container. docker volume prune
docker ps -a -q
retourne
d32339d75d66
Suppression des containers sur le disque
docker rm $(docker ps -a -q)