Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.5K
Visualizações
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?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

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

over 4 years ago · Santiago Trujillo Relatório

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

over 4 years ago · Santiago Trujillo Relatório

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

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda