- Nek,
Hello messieurs,
J’ai un gitlab "perso" et une CI capable aujourd’hui de mettre en prod mon appli. J’suis assez content de cela sauf que cette même CI ne peut pas lancer les tests de façon un peu isolée. Il faudrait que j’utilise le même runner et que je me connecte en SSH pour lancer un test sur mon serveur. J’aimerais le faire plus directement en utilisant une approche de docker in docker.
Concrètement mon appli est splitée en plusieurs dockers, notamment le docker de base de données… Et j’aimerais lancer mes tests fonctionnels.
Donc j’ai essayé ceci:
-
Installation d’un gitlab runner sur mon serveur https://docs.gitlab.com/runner/install/linux-manually.html
-
J’utilise cette configuration pour mon projet:
stages: - testing run tests: services: - docker:19.03.8-dind stage: testing script: - docker images - make build - make test.behat
Pour l’instant impossible de le faire démarrer, voici les logs:
Using Docker executor with image ubuntu:latest ...
Starting service docker:19.03.8-dind ...
Pulling docker image docker:19.03.8-dind ...
Using docker image sha256:c814ba3a41a3de0a9a23b7d0bb36f64257b12aef5103b4ce1d5f1bfc3033aad3 for docker:19.03.8-dind ...
Waiting for services to be up and running...
*** WARNING: Service runner-qzr2td2z-project-39-concurrent-0-e6c744ac051ec809-docker-0 probably didn't start properly.
Health check error:
service "runner-qzr2td2z-project-39-concurrent-0-e6c744ac051ec809-docker-0-wait-for-service" timeout
Health check container logs:
Service container logs:
2020-09-22T22:33:01.200443256Z Generating RSA private key, 4096 bit long modulus (2 primes)
2020-09-22T22:33:01.229487871Z ....++++
2020-09-22T22:33:01.272803533Z ........++++
2020-09-22T22:33:01.273230846Z e is 65537 (0x010001)
2020-09-22T22:33:01.288264240Z Generating RSA private key, 4096 bit long modulus (2 primes)
2020-09-22T22:33:01.434288861Z ..............................++++
2020-09-22T22:33:01.801949252Z ..................................................................................++++
2020-09-22T22:33:01.802387437Z e is 65537 (0x010001)
2020-09-22T22:33:01.826370465Z Signature ok
2020-09-22T22:33:01.826383719Z subject=CN = docker:dind server
2020-09-22T22:33:01.826523493Z Getting CA Private Key
2020-09-22T22:33:01.837578085Z /certs/server/cert.pem: OK
2020-09-22T22:33:01.840191851Z Generating RSA private key, 4096 bit long modulus (2 primes)
2020-09-22T22:33:01.963107808Z ..........................++++
2020-09-22T22:33:03.133745304Z ..........................................................................................................................................................................................................................................................................++++
2020-09-22T22:33:03.134169816Z e is 65537 (0x010001)
2020-09-22T22:33:03.157060121Z Signature ok
2020-09-22T22:33:03.157086442Z subject=CN = docker:dind client
2020-09-22T22:33:03.157238520Z Getting CA Private Key
2020-09-22T22:33:03.168806817Z /certs/client/cert.pem: OK
2020-09-22T22:33:03.171079474Z mount: permission denied (are you root?)
2020-09-22T22:33:03.171183141Z Could not mount /sys/kernel/security.
2020-09-22T22:33:03.171188432Z AppArmor detection and --privileged mode might break.
2020-09-22T22:33:03.171876008Z mount: permission denied (are you root?)
*********
Pulling docker image ubuntu:latest ...
Using docker image sha256:bb0eaf4eee00c28cb8ffd54e571dd225f1dd2ed8d8751b2835c31e84188bf2de for ubuntu:latest
Preparing environment
Running on runner-qzr2td2z-project-39-concurrent-0 via kido...
Getting source from Git repository
Fetching changes...
Reinitialized existing Git repository in /builds/GangBowl/prototype3/.git/
Checking out 63ef2906 as feature/tests-on-ci...
Skipping Git submodules setup
Executing "step_script" stage of the job script
$ docker images
/usr/bin/bash: line 97: docker: command not found
ERROR: Job failed: exit code 1...
Concrètement ici plusieurs chooses ne vont pas:
1. Apparemment le service docker in docker ne démarre pas ?!… Mais ça continue quand même
2. Je n’ai pas accès à la commande docker
donc bloqué. J’ai tenté en spécifiant l’image dind, du coup j’ai naturellement la commande mais il n’arrive pas à accéder à docker.
J’ai essayé plusieurs solutions mais rien n’y fait. Du coup si l’un d’entre vous a déjà tenté cela, j’aimerais profiter un peu de son experience.
Merci d’avance!