[Framagit] Deploiement d'image sur docker hub avec Kaniko

Bonjour la communauté,

Après avoir compris grâce à un autre topic que docker-in-docker n’était pas utilisable directement avec le runner gitlab partagé, j’essaie avec Kaniko

Seulement, en suivant Use kaniko to build Docker images | GitLab, ainsi que cette recommandation qui indique de rédiger différemment le config.json, aucun moyen de m’identifier.

Voici mon code :

deploy-job:
  image:
    name: gcr.io/kaniko-project/executor:debug
    entrypoint: [""]
  stage: deploy
  script:
    - export VERSION=$(cat ./orea/__init__.py | grep __version__ | head -1 | awk -F'=' '{ print $2 }' | sed "s/[' ]//g")
    - mkdir -p /kaniko/.docker
#    - KANIKOCFG="\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${REGISTRY_USERNAME}\",\"password\":\"${REGISTRY_PSSWD}\"}}"
#    - echo "${KANIKOCFG}" > /kaniko/.docker/config.json
    - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${REGISTRY_USERNAME}:${REGISTRY_TOKEN} | base64)\"}}}" > /kaniko/.docker/config.json
    - >-
      /kaniko/executor
      --context "${CI_PROJECT_DIR}"
      --dockerfile "${CI_PROJECT_DIR}/Dockerfile"
      --destination "${CI_REGISTRY_IMAGE}:${VERSION}"

J’ai essayé :

  • avec l’image executor:v1.9.0-debug
  • avec la méthode 1 {"username": "${REGISTRY_USERNAME}","password": "${REGISTRY_PSSWD}"}
  • avec la méthode 2 {"auth": "xxxxxxx"} (utilisant echo -n $REGISTRY_USERNAME:$REGISTRY_PSSWD | base64)
  • avec un token généré et avec mon propre mot de passe
  • en recopiant exactement le config.json généré quand je fais docker login sur ma machine (cela rend exactement comme la méthode 1)
  • avec CI_REGISTRY : https:// index. docker. io/v1/ ET https:// index. docker. io/v2/ (sans espace bien sûr)

A chaque fois l’erreur est bien
Pour v1 :

checking push permission for "orea-back:1.4.0-SNAPSHOT": POST https://index.docker.io/v2/library/orea-back/blobs/uploads/: UNAUTHORIZED: authentication required; [map[Action:pull Class: Name:library/orea-back Type:repository] map[Action:push Class: Name:library/orea-back Type:repository]]

Pour v2 :

checking push permission for "orea-back:1.4.0-SNAPSHOT": creating push check transport for index.docker.io failed: GET https://auth.docker.io/token?scope=repository%3Alibrary%2Forea-back%3Apush%2Cpull&service=registry.docker.io: unexpected status code 401 Unauthorized: {"details":"incorrect username or password"}

Y a-t-il quelque chose qui me manque et que je ne vois pas ?

Merci grandement pour votre aide
Alexandre

[Résolu]
Finalement l’origine du problème était simplement dans le nom du CI_REGISTRY_IMAGE dans lequel je voulais push l’image

Il manquait le nom du user avant le nom du repo.