3 KiB
Docker et YunoHost
Voici une page de documentation en guise de mémo sur la manière de tester/développer YunoHost avec Docker.
Toutes les autres façons d’installer YunoHost sont listées ici.
Installer Docker
Prérequis : une machine x86 qui tourne sous Ubuntu 14.04 ou supérieur, ArchLinux ou Fedora (sur Debian c’est plus chiant).
Sous Ubuntu :
$ curl -s https://get.docker.io/ubuntu/ | sudo sh
Sous ArchLinux :
$ sudo pacman -Sy docker
Sous Fedora :
$ sudo dnf install docker
Passez root :
$ sudo -i
Lancer le démon docker avec une des commande ci-dessous :
service docker start
systemctl start docker
docker -d
Installer le conteneur YunoHost
La commande suivante va télécharger l’image YunoHost pré-construite :
docker pull zamentur/yunohost-stable8
Vous pouvez également construire le conteneur manuellement :
docker build -t zamentur/yunohost-stable8 github.com/YunoHost/Dockerfile
Vous pouvez vérifier que le conteneur est bien téléchargé avec la commande docker images
Démarrer le conteneur
Pour démarrer le conteneur, lancez la commande suivante en remplaçant DOMAIN par un domaine valide ex: mondomaine.org => yunohost.mondomaine.org
docker run -h yunohost.DOMAIN -v $(pwd):/yunohost -d zamentur/yunohost-stable8 /sbin/init
Si vous souhaitez démarrer le conteneur avec tous les ports forwardés sur l’hôte :
docker run -d -h yunohost.DOMAIN -v $(pwd):/yunohost \
-p 25:25 \
-p 53:53/udp \
-p 80:80 \
-p 443:443 \
-p 465:465 \
-p 993:993 \
-p 5222:5222 \
-p 5269:5269 \
-p 5290:5290 \
zamentur/yunohost-stable8 \
/sbin/init
Plus d’information sur la documentation de Docker :
Post-installation
Entrer dans le container en remplaçant XXXX par l’id obtenu lors du docker run
docker exec -t -i XXXX /bin/bash
Puis lancez la postinstall avec le script dédié à docker
postinstall
Commandes utiles
Récupérez l’adresse IP du conteneur (normalement quelque chose comme 172.17.0.x)
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <CONTAINER_ID>
Snapshoter l’état d’un container
docker commit <ID_de_mon_conteneur> LeNomQueJeVeux
# Exemple : docker commit 3e85317430db zamentur/yunohost-stable8:27042015
Assigner une IP à un container
# Vous avez besoin d’iptables, et avoir activé l’IP forwarding sur votre système
iptables -t nat -A PREROUTING -d <IP à allouer> -j DNAT --to-destination <IP conteneur docker>
iptables -t nat -A POSTROUTING -s '<IP conteneur docker>/32' -o eth0 -j SNAT --to-source <IP à allouer>
# Attention à l’interface (ici eth0)
Se connecter à un conteneur démarré
docker exec -t -i <ID_de_mon_conteneur> /bin/bash