Possibilité d'installation via docker ? Docker-compose?

Bonjour, après avoir suivi la formation numérique éthique des Colibris avec Jérémy Collot et Laurent Marseault, je suis intéressé pour m’installer et tester « yesWiki ».
J’ai installé un serveur Ubuntu sur ma freebox delta sur laquelle je fais tourner un nextcloud, j’aimerais pouvoir installer YesWiki à côté.
Le plus simple me semblerait de pouvoir l’installer via docker docker-compose, car cela compartimente les outils et rend plus simple la gestion ensuite.
J’ai trouvé une contribution sur l’ancien forum https://yeswiki.net/forum/?qa=2065/existe-t-il-une-image-docker qui ne m’a pas permis de réussir une installation.
Quelqu’un.e aurait de la ressource sur cette possibilité ?

Hello Landread,

C’est la première fois que j’essaie YesWiki, et j’ai réussi à quelque chose de fonctionnel avec Docker, qui mériterait sans doute d’être amélioré, mais ça peut servir de base.

Il faut d’abord créer un dossier :

$ mkdir -p yeswiki && cd yeswiki

Créer un fichier compose.yaml qui contiendra la recette des conteneurs :

services:
    yeswiki:
        build: yeswiki
        container_name: yeswiki
        volumes:
            - ./yeswiki:/var/www/html
        depends_on:
            - mariadb
        environment:
            VIRTUAL_HOST: mondomaine.com
            VIRTUAL_PORT: 80
        # Install php et js vendors
        # Launch apache as lavoweb/php-7.3:composer
        command: bash -c "make install && apache2-foreground"
        ports:
            - "8080:80"

    mariadb:
        image: mariadb:10
        container_name: mariadb
        volumes:
            - ./data/mariadb/var/lib/mysql:/var/lib/mysql
        environment:
            - MYSQL_DATABASE=yeswiki
            - MARIADB_RANDOM_ROOT_PASSWORD=yes
        healthcheck:
            test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
            timeout: 20s
            retries: 10

Il faut modifier « mondomaine.com » et le port 8080 s’il est déjà écouté sur ta machine (peut-être par Nextcloud ?)

Ensuite il va te falloir aussi le code source de YesWiki pour fabriquer l’image Docker, j’ai utilisé la commande suivante :

$ sudo git clone https://github.com/YesWiki/yeswiki -b v4.3.1 yeswiki

Ensuite tu peux faire un docker compose up -d qui va fabriquer/récupérer les images et créer les conteneurs.

Ensuite sur le port indiqué plus haut tu devrais pouvoir joindre le port de YesWiki, par exemple http://localhost:8080 et procéder à l’installation.

pwd

Pour obtenir le mot de passe root de MariaDB, tu dois utiliser la commande sudo docker compose logs mariadb | grep GENERATED

Tu remplis tous les réglages, puis il te dira qu’il ne peut pas écrire le fichier wanna.config.php, il faudra donc copier le contenu indiqué et créer le fichier :

# ici on est déjà dans le répertoire yeswiki
$ sudo vim yeswiki/wanna.config.php

Puis attribuer les droits qui correspondent dans le conteneur à l’utilisateur www-data (uid/gid 33) pour le répertoire YesWiki

# on est déjà dans le répertoire yeswiki avec le compose.yaml dedans
$ sudo chown -R 33:33 yeswiki

Ensuite tu devrais pouvoir accéder à ton YesWiki fonctionnel.

Il est possible qu’il faille accorder les droits à d’autres dossiers, comme j’ai peu utilisé YesWiki je ne sais pas encore lesquels mais j’essaierai de mettre à jour en fonction de mes découvertes. j’ai finalement attribué les droits à tous les dossiers par facilité !

(Aussi j’ai une version si tu utilises un reverse proxy Traefik comme c’est le cas pour moi, dis-moi)

2 « J'aime »

Aïe, oui, pour l’architecture, j’étais sur x86. J’ai bien tenté sur du arm64 (Raspberry Pi 4), mais j’ai voulu aller au plus vite alors je l’ai mis sur un VPS que j’avais.

Par contre pour MySQLi, je n’ai pas eu besoin de le faire…peut-être une divergence entre les images des deux archis ? Ça m’étonne…

J’ai supprimé mon post précédent qui n’était pas clair et n’apportait rien. Ta solution fonctionne très bien sur x64. :nerd_face: Merci bcp

Sur arm64, je n’ai pas réussi à aboutir et j’avoue j’ai laissé de côté. :sweat_smile: