Le wiki qui héberge cette documentation.
Architecture
| Conteneur | Rôle |
|---|---|
| xwiki-mariadb-tomcat-web | XWiki (version LTS) sur Tomcat |
| xwiki-mariadb-db | Base MariaDB |
Stack
networks:
xwiki:
driver: bridge
proxy:
external: true
services:
db:
image: mariadb:11.4
container_name: xwiki-mariadb-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=<MOT_DE_PASSE_ROOT>
- MYSQL_DATABASE=<BASE>
- MYSQL_USER=<UTILISATEUR>
- MYSQL_PASSWORD=<MOT_DE_PASSE>
- MARIADB_AUTO_UPGRADE=1
volumes:
- <APPDATA>/xwiki/xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf
- <APPDATA>/xwiki/mariadb:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- xwiki
web:
image: xwiki:lts-mariadb-tomcat
container_name: xwiki-mariadb-tomcat-web
depends_on:
- db
restart: unless-stopped
environment:
- DB_USER=<UTILISATEUR>
- DB_PASSWORD=<MOT_DE_PASSE>
- DB_HOST=xwiki-mariadb-db
- JAVA_OPTS=-Xmx1024m -Denvironment.permanentDirectory=/usr/local/xwiki -Dxwiki.data.dir=/usr/local/xwiki -Dxwiki.store.attachment.hint=file -Dxwiki.store.attachment.versioning.hint=file
volumes:
- <APPDATA>/xwiki/data:/usr/local/xwiki
- <APPDATA>/xwiki/xwiki.cfg:/usr/local/tomcat/webapps/ROOT/WEB-INF/xwiki.cfg
- <APPDATA>/xwiki/server.xml:/usr/local/tomcat/conf/server.xml
ports:
- "8080:8080"
networks:
- xwiki
- proxy
xwiki:
driver: bridge
proxy:
external: true
services:
db:
image: mariadb:11.4
container_name: xwiki-mariadb-db
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=<MOT_DE_PASSE_ROOT>
- MYSQL_DATABASE=<BASE>
- MYSQL_USER=<UTILISATEUR>
- MYSQL_PASSWORD=<MOT_DE_PASSE>
- MARIADB_AUTO_UPGRADE=1
volumes:
- <APPDATA>/xwiki/xwiki.cnf:/etc/mysql/conf.d/xwiki.cnf
- <APPDATA>/xwiki/mariadb:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- xwiki
web:
image: xwiki:lts-mariadb-tomcat
container_name: xwiki-mariadb-tomcat-web
depends_on:
- db
restart: unless-stopped
environment:
- DB_USER=<UTILISATEUR>
- DB_PASSWORD=<MOT_DE_PASSE>
- DB_HOST=xwiki-mariadb-db
- JAVA_OPTS=-Xmx1024m -Denvironment.permanentDirectory=/usr/local/xwiki -Dxwiki.data.dir=/usr/local/xwiki -Dxwiki.store.attachment.hint=file -Dxwiki.store.attachment.versioning.hint=file
volumes:
- <APPDATA>/xwiki/data:/usr/local/xwiki
- <APPDATA>/xwiki/xwiki.cfg:/usr/local/tomcat/webapps/ROOT/WEB-INF/xwiki.cfg
- <APPDATA>/xwiki/server.xml:/usr/local/tomcat/conf/server.xml
ports:
- "8080:8080"
networks:
- xwiki
- proxy
Fichiers de configuration
| Fichier | Rôle |
|---|---|
| xwiki.cnf | Réglages MariaDB propres à XWiki |
| init.sql | Initialisation de la base, au premier démarrage uniquement (chemin relatif au dossier de la stack Portainer) |
| xwiki.cfg | Configuration de XWiki |
| server.xml | Configuration de Tomcat |
Données
- Répertoire permanent : <APPDATA>/xwiki/data, monté sur /usr/local/xwiki. Les données de XWiki sont dans le sous-dossier data, d'où le double data dans le chemin sur l'hôte.
- Pièces jointes et leur historique stockés en fichiers (attachment.hint=file), pas dans la base.
- Index de recherche Solr dans data/store/solr et data/cache/solr : ils se reconstruisent à partir de la base (voir Dépannage).
Mémoire
-Xmx1024m limite la mémoire Java à 1 Go. Si le wiki ralentit ou s'arrête avec une erreur OutOfMemoryError dans les journaux, augmenter cette valeur.
Montée de version de MariaDB
MARIADB_AUTO_UPGRADE=1 convertit les tables système au premier démarrage d'une nouvelle version. Procédure :
- dump complet de la base, puis copie des fichiers bruts avec les conteneurs arrêtés ;
- changement du tag de l'image dans la stack, puis redéploiement ;
- dans les journaux de la base, vérifier « Finished mariadb-upgrade » puis « ready for connections ».
Les erreurs Incorrect definition of table mysql.column_stats qui précèdent la mise à niveau sont normales : elles disparaissent une fois mariadb-upgrade terminé.
Sauvegarde
- Base : dump SQL de xwiki-mariadb-db par le script de Sauvegarde. Les fichiers bruts xwiki/mariadb sont exclus.
- Pièces jointes et configuration : <APPDATA>/xwiki, sauvegardé tel quel.