5 votes

Gitlab runner utilise une mauvaise image Docker pour le conteneur de construction

J'ai configuré un gitlab-ci-multi-runner sur ma VM.
Dans le processus de build, je fournis un container docker avec toutes les dépendances. Mais quand je le lance, le runner utilise une image docker différente (incorrecte) pour son container de build.
Les messages ressemblent à ceci :

En cours d'exécution avec gitlab-ci-multi-runner 9.2.1 (f0xxxx4)
sur runnerVM (f5xxxxf0)
Utilisation de l'exécuteur Docker avec l'image docker.com/xxx/xxx/docker-build:stable ...
Utilisation de l'image docker sha256:fe32xxx...xxxa63c pour le container prédéfini...
Extraction de l'image docker docker.com/xxx/xxx/docker-build:stable ...
Utilisation de l'image docker docker.com/xxx/xxx/docker-build:stable ID=sha256:9608xxx...xxxdf09 pour le container de build...

Quelqu'un peut-il me dire pourquoi le runner utilise une image docker différente pour le container de build?
Pourquoi ne prend-il pas le container prédéfini (parce que c'est le bon...)

Ici, vous pouvez voir mon gitlab-ci.yml:

image: docker.com/xxx/xxx/docker-build:stable

before_script:
  - echo "Avant le script"

after_script:
  - echo "Après le script"

stages:
  - build
  - test
  - deploy

build_release:
  stage: build
  script:
    - sudo make all BUILD_TYPE=Release
  only:
    - master
  tags:
    - tag1

build_debug:
  stage: build
  script:
    - sudo make all BUILD_TYPE=Debug
  only:
    - develop
    - runner-test
  tags:
    - tag1
    - tag2

0voto

Philipp Ludwig Points 1137

Dans votre fichier .gitlab-ci.yml, vous référencez l'URL complète de votre conteneur; cependant, il doit être au format groupe/conteneur, par exemple library/nginx.

Facultativement, vous pouvez utiliser une version spécifique, par exemple library/nginx:1.13.9.

Pour plus d'informations, voir: https://docs.gitlab.com/ce/ci/docker/using_docker_images.html

0voto

smoebody Points 48

Je suppose que vous utilisez l'exécuteur docker. Par conséquent, le gitlab-ci-runner crée une nouvelle image gitlab/gitlab-runner-helper qui isolera les étapes de construction de l'environnement docker de votre VM. Cette image sera le conteneur prédéfini.

Les étapes seront effectuées à l'intérieur de conteneurs d'images que vous spécifiez pour le travail ou l'image que vous spécifiez globalement pour tous les travaux. Ce conteneur est le conteneur de construction.

Le conteneur de construction doit être créé à partir de l'image que vous spécifiez avec image au-dessus de votre .gitlab-ci.yml. Vous pouvez le vérifier en faisant

$ docker image ls | grep -E '(fe32|9608)'

sur votre VM. Cela vous montrera les noms et les tags des images de votre conteneur prédéfini et de construction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X