Pourquoi utiliser Docker ?
Docker est un outil conçu pour faciliter la création, le déploiement et l'exécution d'applications à l'aide de conteneurs. Les conteneurs permettent à un développeur d’intégrer dans une application tous les éléments dont il a besoin, telles que des bibliothèques logicielles et leurs dépendances, et de les mettre à disposition sous la forme d'un fichier unique. En faisant cela, grâce au conteneur, le développeur peut être assuré que l'application s'exécutera sur toute autre machine, quels que soient les paramètres spécifiques de cette machine qui pourraient différer de la machine utilisée pour écrire et tester le code.
Premiers pas avec XWiki avec Docker
La communauté open source XWiki a publié la première version d'un système XWiki prêt pour la production fonctionnant avec Docker en 2017. L'adoption par les utilisateurs n'a cessé d'augmenter, et à présent plus de 26% de toutes les installations actives XWiki sont représentées par des installations Docker.
Le guide complet pour installer XWiki avec Docker est disponible sur https:~/~/github.com/xwiki-contrib/docker-xwiki/blob/master/README.md. La façon la plus simple de démarrer avec XWiki en utilisant Docker est d'utiliser des images existantes (à partir de DockerHub ou construites à partir des sources).

Ensuite, vous pouvez utiliser la commande docker run et suivre trois étapes de base pour exécuter un conteneur pour l'image XWiki et un pour l'image de base de données à laquelle XWiki se connecte.
Étape 1: Créer un réseau Docker dédié
Utilisez la commande docker network pour créer une connexion réseau à utiliser ensuite par les images.
````
docker network create -d bridge xwiki-nw
Étape 2: Exécuter un conteneur pour l'image de base de données à laquelle XWiki se connecte
Dans le cas d'une installation d'XWiki avec MySQL, vous devez d'abord créer un fichier init.sql dans un dossier my/path/mysql-init qui donnera des autorisations à l'utilisateur xwiki de créer de nouveaux schémas (requis pour pouvoir créer des sous-wikis):
````
grant all privileges on . to xwiki@'%' identified by 'xwiki'
Voici un exemple de la commande docker run pour configurer l'image de la base de données MySQL:
````
docker run --net=xwiki-nw --name mysql-xwiki -v /my/path/mysql:/var/lib/mysql -v /my/path/mysql-init:/docker-entrypoint-initdb.d -e MYSQL_ROOT_PASSWORD=xwiki -e MYSQL_USER=xwiki -e MYSQL_PASSWORD=xwiki -e MYSQL_DATABASE=xwiki -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_bin --explicit-defaults-for-timestamp=1
Explication des paramètres :
xwiki-nwest la connexion réseau créée à l'étape 1,mysql-xwikiest le nom du conteneur d'ancrage de la base de données,/my/path/mysqlest le dossier local où Docker stockera les données de la base de données,/my/path/mysql-initest le dossier où est stocké le fichierinit.sql,- The MySQL image v5.7 est extrait de Docker Hub,
MYSQL_DATABASEspécifie le nom de la base de données pour XWiki.
Étape 3: Exécuter un conteneur pour l'image XWiki
Ensuite, vous devez exécuter la commande docker run pour l'image XWiki:
````
docker run --net=xwiki-nw --name xwiki -p 8080:8080 -v /my/path/xwiki:/usr/local/xwiki -e DB_USER=xwiki -e DB_PASSWORD=xwiki -e DB_DATABASE=xwiki -e DB_HOST=mysql-xwiki xwiki:lts-mysql-tomcat
Explication des paramètres :
xwiki-nwest le pont réseau créé à l'étape 1,xwikiest le nom du conteneur Docker XWiki,-p 8080:8080expose le port 8080 du conteneur à l'hôte 8080 (-p hostPort:containerPort),- pour
-v /my/path/xwiki:/usr/local/xwiki, le chemin/my/path/xwikireprésente le dossier local où Docker stockera les fichiers de configuration et les données dynamiques pour XWiki, tandis que/usr/local/xwikireprésente le chemin de stockage des données à l'intérieur du conteneur, DB_HOSTest le nom du conteneur contenant la base de données créée à l'étape 2.
Comment tester que cela fonctionne réellement ?
Si vous ouvrez le navigateur et que vous consultez votre wiki (par exemple http:~/~/localhost:8080/bin/view/Main/)), vous devez obtenir l'assistant de distribution d'XWiki pour terminer le processus d'installation :

Vous pouvez vous connecter à l'instance MySQL à l'intérieur du conteneur mysql-xwiki :
````
docker exec -it mysql-xwiki bash
mysql -uxwiki -pxwiki
\Ensuite, vous pouvez utiliser les commandes MySQL standard pour vérifier la base de données créée par XWiki.
Éléments à prendre en compte lors de l'installation d'XWiki avec Docker
- Le dossier local où Docker stocke les données
/my/path/mysqldoit être vide. - Tous les dossiers locaux (e.g.
/my/path/mysql-init,/my/path/mysql,/my/path/xwiki) doivent disposer des droits appropriés fournis par le système d'exploitation. - Utilisez
docker pspour vérifier si les conteneurs sont correctement opérationnels. - Consultez la documentation complète sur\\ \\<https://github.com/xwiki-contrib/docker-xwiki/blob/master/README.md>
FAQ générale
Comment mettre à jour le wiki lors de l'utilisation de l'installation avec Docker ?
Vous pouvez consulter les guides suivants pour les mises à jour :
- https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Upgrade#HMethod1.BUpgradingfromDocker.Docker
- https://github.com/xwiki-contrib/docker-xwiki/blob/master/README.md#upgrading-xwiki
Comment installer un éditeur de texte dans l'image Docker XWiki ?
L'image est très petite, vous n'aurez donc pas beaucoup d'outils. Vous pouvez facilement les installer avec une commande apt-get :
````
apt-get update && apt-get install vi
Existe-t-il un tutoriel vidéo étape par étape sur l'installation de XWiki avec Docker ?
Un membre de la communauté XWiki a créé une vidéo comprenant une installation étape par étape de XWiki avec Docker : https://www.youtube.com/watch?v=4bNkU3qbrHA