Estoy tratando de iniciar sesión en CGR y usar algunas imágenes acoplables privadas en el corredor Gitlab-ci.
Hice un nuevo proyecto en Google Cloud y activé la API de registro de Google Cloud. También creé una nueva cuenta de servicio (IAM) en la que otorgué permiso de propiedad a la instancia anterior de Cloud Registry. Luego produje una clave json. Probé la clave con la siguiente configuración de gitlab-ci y en la máquina local:
image: docker:latest services: - docker:dind auth: stage: auth script: - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.jsonParece estar autenticado y autorizado para empujar/tirar imágenes.
Lo que necesito hacer es tener lo siguiente, necesito ir a mi repositorio privado y usar esas imágenes en el corredor gitlab-ci. Algo como esto:
before_script: - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json build: stage: build image: gcr.io/image-repo/image script: - gradle clean build deploy: stage: deploy image: gcr.io/image-repo/image script: - gradle publish only: - masterSin embargo, sigo recibiendo este error:
Ejecutando con gitlab-runner 11.10.1 (1f513601) en docker-auto-scale 0277ea0f Usando el ejecutor de Docker con la imagen gcr.io/image-repo/image... Extrayendo la imagen de docker gcr.io/image-repo/image... ERROR: Error de preparación: respuesta de error del demonio: no autorizado: no tiene los permisos necesarios para realizar esta operación y es posible que tenga credenciales no válidas. Para autenticar su solicitud, siga los pasos en:https://cloud.google.com/container-registry/docs/advanced-authentication (executor_docker.go:168:0s) Se volverá a intentar en 3 segundos...
Logré una solución práctica:
Uno debe usar el servicio de viento para restablecer la configuración de la ventana acoplable y luego iniciar sesión, por ejemplo, en su máquina local usando:
docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json Luego, simplemente copie la configuración presente en ~/.docker/config.json a la variable DOCKER_AUTH_CONFIG en Gitlab CI y estará listo para comenzar.