Aller au contenu

Prérequis

Docker doit être installé, via docker-cli sur Linux ou Docker Desktop sur Mac.

CI

Génération de l'image utilisée dans la CI.

Création et upload automatique de l'image

Il est nécessaire d'être identifié sur https://hub.docker.com avec le login efalia (mot de passe sur demande).

make ci-docker-image-and-upload

L'image est ensuite disponible publiquement à l'adresse : https://hub.docker.com/r/efalia/mgx

Il devient donc possible de l'utiliser directement dans un Dockerfile :

FROM efalia/mgx:latest

Ce que nous faisons dans nos tests pour éviter l'installation de l'infra lors de chaque build.

Création de l'image en local (pour debug)

docker build -t mgx .

Pour tester rapidement cette nouvelle image dans un conteneur :

docker run -it mgx /bin/bash

Ou pour se retrouver exactement dans le même environnement que la CI :

docker run -it --cap-add=SYS_PTRACE --add-host mgx.loc:127.0.0.1 -v $PWD:/__w/mgx/mgx/ mgx /bin/bash

Ou pour Windows

docker run -it --cap-add=SYS_PTRACE --add-host mgx.loc:127.0.0.1 -v ${PWD}:/__w/mgx/mgx/ mgx /bin/bash

Ce qui permet ensuite de démarrer les services nécessaires et de lancer les tests dans le conteneur :

./provision/scripts/docker/start-services.sh
./provision/scripts/docker/apply-permissions.sh
make install
make test

Dev

Génération de l'image utilisée pour le développement avec Vagrant.

Création et upload automatique de l'image

Il est nécessaire d'être identifié sur https://hub.docker.com avec le login efalia (mot de passe sur demande).

Lancer ensuite cette commande depuis une architecture ARM pour construire l'image multi-architectures et la téléverser automatiquement sur le hub Docker :

make multiarch-vagrant-docker-image-and-upload

L'image est ensuite disponible publiquement à l'adresse https://hub.docker.com/r/efalia/vagrant-mgx

Création de l'image en local (pour debug)

make local-vagrant-docker-image

Pour tester rapidement cette nouvelle image dans un conteneur :

docker run -it vagrant-mgx /bin/bash