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
- utilisant les adresses
172.18.200.0/24
;
- un service nginx qui servira de front web
- basé sur la dernière version de l'image nginx;
- qui a une adresse fixe dans le réseau
rescompose
:172.18.200.5
; - lancé après les services phpmyadmin et owncloud;
- qui partage le port 80 de la machine avec le port 80 du docker;
- qui est configuré via le partage du fichier
./compose/nginx/nginx.conf
; - qui renvoie les requêtes http://IP_DE_VOTRE_VM/ sur owncloud et http://IP_DE_VOTRE_VM/phpMyAdmin/ sur phpmyadmin.
- Un service mysql
- basé su l'image
mysql
dans la version 5.7 ; - dont le répertoire de données est associé à
./compose/data/mysql/
; - qui a une adresse automatique dans le réseau
rescompose
; - qui est connu des autres dockers sous plusieurs noms :
mysql
,bdd
oubd
; - dont le mot de passe root est
passbdd
; - qui contient un utilisateur
owncloud
de mot de passepassowc
et une baseowncloud
.
- Un service phpmyadmin
- basé sur l'image
phpmyadmin/phpmyadmin
; - qui démarre après mysql;
- qui a une adresse dynamique dans le réseau
rescompose
; - qui est connu des autres dockers sous plusieurs noms :
phpmyadmin
oupma
; - qui interroge le serveur mysql;
- Un service owncloud
- basé sur une image construite d'après le contenu du répertoire
./compose/owncloud/
; - qui démarre après le docker mysql;
- dont le volume de données est associé au répertoire
./compose/data/owncloud/
; - qui a une adresse dynamique dans le réseau
rescompose
; - qui est connu des autres dockers sous plusieurs noms :
owncloud
ouowc
; - qui utilise la base de donnée et l'utilisateur mysql
owncloud
; - dont l'administrateur
admin
a pour mot de passepassadmin
; - qui utilise le plugins
calendar
installé automatiquement via le scriptpinst.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