• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

1.3K
Vistas
Compilación local de Gitlab-runner: inicie sesión desde un dispositivo que no sea TTY

Estoy tratando de construir mi proyecto localmente usando gitlab-runner en Linux.

 docker-build: stage: build image: docker:latest script: - docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY # user "gitlab-ci-token" is automatically created by GitLab - docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" target/ - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME"

Desafortunadamente, mis intentos terminan con un error sobre el "inicio de sesión de Docker" que no puede realizar un inicio de sesión interactivo desde un dispositivo que no es TTY.

 $ gitlab-ci-multi-runner exec docker --docker-privileged docker-build Running with gitlab-ci-multi-runner 1.11.1 (a67a225) on () Using Docker executor with image docker:latest ... Starting service docker:dind ... Pulling docker image docker:dind ... Waiting for services to be up and running... Pulling docker image docker:latest ... Running on runner--project-1-concurrent-0 via vanqyard... Cloning repository... Cloning into '/builds/project-1'... done. Checking out 70187b2d as docker-basic-conf... Skipping Git submodules setup Checking cache for docker-build/docker-basic-conf... Successfully extracted cache $ docker login -u "gitlab-ci-token" -p "$CI_JOB_TOKEN" $CI_REGISTRY Error: Cannot perform an interactive login from a non TTY device ERROR: Job failed: exit code 1 FATAL: exit code 1

Mi pregunta es: ¿alguien se ha topado con este problema y cómo realizar la compilación con éxito?

almost 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Probablemente no esté relacionado con el problema aquí, pero algunas personas pueden encontrar exactamente el mismo mensaje al intentar docker login desde una terminal similar a Linux en Windows, como Git bash o la terminal de inicio rápido de Docker o incluso Cygwin .

El truco aquí es usar el inicio de sesión de winpty docker login

almost 3 years ago · Santiago Trujillo Denunciar

0

Lo más probable es que no haya especificado las variables $CI_JOB_TOKEN y $CI_REGISTRY para el proyecto en el que está trabajando. Tenga en cuenta que las variables no se comparten y solo se establecen por proyecto .

Por eso también te encuentras con el mensaje de error.

"la bandera necesita un argumento: 'p' en -p"

cuando intenta iniciar sesión en la ventana acoplable sin las comillas, que es la forma correcta porque, de lo contrario $CI_JOB_TOKEN no se reconoce como una variable, sino que es simplemente una cadena que consta de dos comillas, un signo de dólar y la secuencia de caracteres "CI_JOB_TOKEN" .

Suponiendo que sus variables no están configuradas e intenta ejecutar el comando

 docker login -u "gitlab-ci-token" -p $CI_JOB_TOKEN $CI_REGISTRY

las variables se evalúan y su comando esencialmente se ve así:

 docker login -u "gitlab-ci-token" -p

El indicador -p no va seguido de una contraseña y, por ese motivo, Docker intenta inicializar un inicio de sesión interactivo.

Puede verificar esto intentando generar sus variables cuando incluye el comando echo $CI_JOB_TOKEN en su .gitlab-ci.yml

almost 3 years ago · Santiago Trujillo Denunciar

0

Tuve el mismo problema, pero por una causa diferente a las que ya se enumeran aquí.

Este es mi comando gitlab-ci:

 docker login "${AZURE_ACR_URL}" -u "${AZURE_ACR_ACCOUNT}" -p "${AZURE_ACR_PASSWORD}"

Mi canalización funcionaba bien en la rama maestra, pero no en otras ramas. ¿Por qué? Porque definí la variable AZURE_ACR_PASSWORD a través de la función settings/ci_cd, con el indicador "protegido". Después de leer lo que significa esta bandera protegida, entendí por qué mi variable AZURE_ACR_PASSWORD no se podía ver en el comando:

Esta variable se pasará solo a canalizaciones que se ejecutan en ramas y etiquetas protegidas

almost 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda