Docker (raspberry pi)

De wiki jackbot
Sauter à la navigation Sauter à la recherche


Autant sur un ordinateur classique installer Docker, ainsi que Docker-compose est une chose aisé, autant tenter l'aventure sur une Raspberry pi est assez prise de tête ...

Installation de Docker

La méthode très facile, mais pas à jour

Sur raspian, on peut se contenter d'utiliser la commande :

sudo apt-get install docker.io

Cependant la version que vous obtiendrez suite à cette commande, 1.8.3~ds1-2 (en avril 2018), ne permettra pas l'utilisation de docker-compose (en tout cas pas avec des fichiers "docker-compose.yml" de version 2), il vous faudra pour ça une version supérieure à la 1.10.

La méthode facile et à jour

Pour obtenir une version à jour il faut chercher docker dans un autre dépôt.

sudo apt-get install -y apt-transport-https
wget -q https://packagecloud.io/gpg.key -O - | sudo apt-key add -
echo 'deb https://packagecloud.io/Hypriot/Schatzkiste/debian/ wheezy main' | sudo tee /etc/apt/sources.list.d/hypriot.list
sudo apt-get update
sudo apt-get install -y docker-hypriot
sudo systemctl enable docker

Source

Installation de Docker-compose

C'est maintenant que les choses se corsent, pour les mêmes raisons qu'au-dessus, la commande

sudo apt-get install docker-compose

Ne vous permettra que d'accéder à la version 1.9.0-29 (avril 2018). Pour arriver à obtenir la dernière version il va falloir le compiler. La méthode que j'ai trouvé est assez particulière car plutôt que d'installer tous les paquets nécessaire à sa compilation, cette méthode utilise docker afin de créer un conteneur satisfaisant les conditions.

Récupération du dépôt git

On commence par récupérer les sources sur git grâce aux commandes :

git clone https://github.com/docker/compose.git
git checkout release

Ensuite on accède au dossier avec la simple commande

cd compose

python-pip

Attention !! Sur le site où j'ai trouvé ces infos il crée l'image toute de suite, cependant chez moi j'ai eu quelques erreurs concernant pip J'ai pu procédé à la création de l'image en modifiant le fichier "Dockerfile.armhf". La ligne qui posa problème chez moi est :

RUN pip install tox==2.1.1

J'ai du la commenter et la remplacer par :

RUN apt-get update
RUN apt-get install python-pip -y
RUN python3 -m pip install --upgrade tox==2.1.1

Pour ne plus avoir d'erreur lors de la création de l'image.

Création de l'image

attention vous aurez le temps de boire plusieurs cafés pendant cette étape.

docker build -t docker-compose:armhf -f Dockerfile.armhf .

Compilation

Une fois l'image crée il faut compiler docker-compose (celle là aussi prend du temps) :

docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf" 

Une fois fini, vous obtiendrez l'exécutable dans le dossier dist, il ne reste alors plus qu'a copier au bon endroit et changer les droits de ce fichier.

Fin

sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
sudo chown root:root /usr/local/bin/docker-compose
sudo chmod 0755 /usr/local/bin/docker-compose

Et voilà vous disposez maintenant de docker et docker-compose à jour.

Source