Travail à faire

Vous devez installer docker-compose.

N'utilisez pas apt-get install docker-compose car cela installerait une ancienne version de docker sur votre VM.

Vous devez créer un ensemble de fichiers et un docker-compose.yml qui recrée l'architecture.

Le répertoire doit être ~/compose/ et contenir tous les fichiers et partages nécessaires à cette architecture.

  ./compose/
    |_ docker-compose.yml
    |_ data/
    |    |_ mysql/
    |    |_ owncloud/
    |    |_ onlyoffice/
    |_ logs/
    |    |_ onlyoffice/
    |_ nginx/
    |    |_ nginx.conf
    |_ owncloud/
         |_ Dockerfile
         |_ pinst.sh

Vous devez faire un fichier compose qui crée des 4 docker et le réseau.

Pour résumer il faut :

  • un réseau rescompose
    1. utilisant les adresses 172.18.200.0/24;
  • un service nginx qui servira de front web
    1. basé sur la dernière version de l'image nginx;
    2. qui a une adresse fixe dans le réseau rescompose : 172.18.200.5;
    3. lancé après les services phpmyadmin et owncloud;
    4. qui partage le port 80 de la machine avec le port 80 du docker;
    5. qui est configuré via le partage du fichier ./compose/nginx/nginx.conf;
    6. qui renvoie les requêtes http://IP_DE_VOTRE_VM/ sur owncloud et http://IP_DE_VOTRE_VM/phpMyAdmin/ sur phpmyadmin.
  • Un service mysql
    1. basé su l'image mysql dans la version 5.7 ;
    2. dont le répertoire de données est associé à ./compose/data/mysql/;
    3. qui a une adresse automatique dans le réseau rescompose;
    4. qui est connu des autres dockers sous plusieurs noms : mysql, bdd ou bd;
    5. dont le mot de passe root est passbdd;
    6. qui contient un utilisateur owncloud de mot de passe passowc et une base owncloud.
  • Un service phpmyadmin
    1. basé sur l'image phpmyadmin/phpmyadmin;
    2. qui démarre après mysql;
    3. qui a une adresse dynamique dans le réseau rescompose;
    4. qui est connu des autres dockers sous plusieurs noms : phpmyadmin ou pma;
    5. qui interroge le serveur mysql;
  • Un service owncloud
    1. basé sur une image construite d'après le contenu du répertoire ./compose/owncloud/;
    2. qui démarre après le docker mysql;
    3. dont le volume de données est associé au répertoire ./compose/data/owncloud/;
    4. qui a une adresse dynamique dans le réseau rescompose;
    5. qui est connu des autres dockers sous plusieurs noms : owncloud ou owc;
    6. qui utilise la base de donnée et l'utilisateur mysql owncloud;
    7. dont l'administrateur admin a pour mot de passe passadmin;
    8. qui utilise le plugins calendar installé automatiquement via le script pinst.sh.

Un peu plus difficile

Il est possible de donner à owncloud la possibilité d'éditer les documents en ligne. Pour cela, il faut utiliser un autre service : onlyoffice et ajouter le plugins onlyoffice à owncloud pour lui permettre de contacter ce dernier.

Pour faire fonctionner ce service de manière automatique, il faut savoir les choses suivantes :

  • Le service onlyoffice a besoin d'une configuration particulière derrière un proxy inversé, voir ici
  • Le service onlyoffice doit pouvoir être accédé par le navigateur, on le teste en allant sur la page du service qui doit renvoyer vers la page welcome comme ici http://localhost/onlyoffice/
  • Le plugin onlyoffice de owncloud demande en plus de son installation la configuration de variable. L'interface permet de le faire dans la partie settings→additionnal.
  • En ligne de commande on peut lister les variables de configuration avec la commande sudo -u www-data php occ config:list
  • En ligne de commande on peut lister les variables de configuration de module avec la commande sudo -u www-data php occ config:app:set
  • cloud/2019/tp_docker_rattrapage.txt
  • Dernière modification : 2019/12/28 00:09
  • de fabien.rico