Docker
Proposition de Marc_Toulouse sur le chat :
https://chat.lescommuns.org/channel/co_dev_open
L’idée en effet est de regrouper les différents façons d’installer Communecter ici : https://wiki.communecter.org/en/installing-communect.html (c’est un clone du wiki de Github)
Voir plus précisément : https://wiki.communecter.org/en/installing-communect-with-docker.html (et pas https://wiki.communecter.org/en/installing-communect-on-ubuntu-16.04.html à priori car ça ne concerne pas docker)
Tibor me parle aussi du nouveau PAD : http://pad.co.tools (sur CryptoPad) : ça c’est pour faire la doc. C’est vraiment ici qu’elle doit être faite : https://wiki.communecter.org/en/installing-communect-with-docker.html : en cliquant sur le crayon, on accès au wiki de Github en mode édition (faut avoir un compte github)
Installation de Communecter via docker
choose community edition CE https://docs.docker.com/engine/installation
example install docker ubuntu https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu
Erreur avec AptGet… OK
docker-ce n’était pas dispo de base, il a fallu ajouter des serveurs
En fait, j’ai du suivre le post:
https://gist.github.com/Stoakes/a5adb36e9211964dbf00b47d36edd181
Post-installation steps for Linux https://docs.docker.com/engine/installation/linux/linux-postinstall
Installer docker-compose
https://docs.docker.com/compose/install
Installer Communecter
git clone https://gitlab.adullact.net/pixelhumain/docker ~/pixelhumain-docker
cd ~/pixelhumain-docker
#pour linux
docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph cotools --install
#ou pour windows/mac utiliser
docker-compose -f docker-compose-no-build.yml -f docker-compose.install-no-build.yml run ph cotools --install
Mise à jour des droits
Modifier les droits pour pouvoir modifier les fichiers :
Pour taper ces commandes, se mettre dans le rep :cd ~/pixelhumain-docker
#modifier le group/user pour pouvoir ouvrir/modifier les fichiers
sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/
sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/pixelhumain/
sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/modules/
sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/log/
Voir aussi “Getting start” : https://docs.docker.com/compose/gettingstarted/#step-3-define-services-in-a-compose-file
Problème d’accès
Suite à cela, je n’avais pas accès à CO.
Nous avons vérifié si un container tournait (voir paragraphe plus bas) -> non
Nous avons supprimé le répertoire code pour tout recommencer.
docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph install
Explication :
la il va rebuilder le container front et utiliser le container install pour faire l’install sur le front
c’est pour ça que l’on a 2 fichier :
- docker-compose.yml
- docker-compose.install.yml
docker-compose.install.yml ne sert que pour l’install et certaine commande
Suite à ces commandes, il clone tout ce qu’il faut en local, ça prend un certain temps en fonction de votre réseau…
Aller sur http://localhost:5080
La première fois, j’ai eu des messages d’erreur d’accès…
Thomas m’a demandé si j’avais le répertoire :/pixelhumain-docker/code/pixelhumain/ph/vendor/
mais je ne l’avais pas…
Nous avons de nouveau supprimé le répertoire code, et modifié le script
/pixelhumain-docker/docker-install/Dockerfile
pour y ajouter curl et php
Voir la présence et lancer un container
Pour savoir si docker tourne, faire "docker ps"
S’il n’y a rien (à part le titre des colonnes du tableau), c’est signe qu’aucun container ne tourne.
Exemple : ici, il n’y a pas de container qui tourne :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Là, il y en a :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92ed85af6a28 pixelhumaindocker_front "/usr/bin/supervisord" 4 weeks ago Up About a minute 9000/tcp, 0.0.0.0:5080->80/tcp, 0.0.0.0:5443->443/tcp, 0.0.0.0:5901->9001/tcp pixelhumaindocker_front_1
8f16ade3a72b mongo "docker-entrypoint..." 4 weeks ago Up About a minute 27017/tcp pixelhumaindocker_mongo_1
Et pour lancer un container :
docker-compose -f docker-compose.yml up
Inscription en local
Une fois sur l’interface d’accueil de CO, il faut remplir le formulaire d’inscription, sauf que le mail d’activation n’est pas envoyé.
Pour passer cette étape, on “triche” avec la commande :
docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph cotools --emailvalid=email@example.com
(en modifiant bien sur : email@example.com par l’email qui a servi à l’inscription)
On rafraîchit la page, on se loge, et ça fonctionne, on arrive dans CO !
Gérer le démarrage auto
sudo systemctl enable docker
Synchronizing state of docker.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable docker
Malgré cela, CO ne démarre pas au lancement de ma machine.
Accès à Communecter
Je n’ai pas encore réussi (pas essayé non plus…) à le lancer au démarrage, donc à chaque fois que je souhaite lancer CO :
- Je vais dans mon répertoire
~/projets/pixelhumain-docker/ - Je lance
docker-compose -f docker-compose.yml up - Je vais sur http://localhost:5080, et ça tourne !
Tout est noté à la fin du script ci-dessus… (je dis ça, car j’ai cherché un peu car je n’avais pas lu…)
Ajout de Fluidgraph dans CO
Administration de la base NoSQL (mongoDB)
Pour avoir accès à mongo en dehors du container il faut ouvrir le port
Voir fichier :
https://github.com/pixelhumain/docker/blob/master/docker-compose.yml
J’ai du ajouter la ligne concernant l’ouverture de port comme l’exemple qui suit :
services:
mongo:
image: mongo
volumes:
- ./code/data/db:/data/db
ports:
- "5017:27017"
Cela m’a permis, via l’outil Robomongo d’ajouter une collection :
{
"_id" : ObjectId("59f1920bc30f30536124355d"),
"name" : "DEV Config",
"key" : "devParams",
"mangoPay" : {
"ClientId" : "communecter",
"ClientPassword" : "XXXXXXXXXXX",
"TemporaryFolder" : "../../tmp"
}
}
Je ne sais pas encore à quoi ça correspond, mais on m’a dit de le faire, sinon, j’avais l’erreur :
ERREUR 403
Missing Configs db.applications.key == prodParamsexists

Ce qui m’a permis de faire fonctionner mon instance locale.