Gitlab-runner 本地构建 - 从非 TTY 设备登录

2024-03-24

我正在尝试在 Linux 上使用 gitlab-runner 在本地构建我的项目。

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"

不幸的是,我的尝试以有关“docker login”无法从非 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 

我的问题是有人偶然发现这个问题以及如何成功执行构建?


可能与这里的问题无关,但有些人在尝试时可能会遇到完全相同的消息docker login从 Windows 上类似 Linux 的终端,例如Git bash or Docker 快速启动终端甚至Cygwin.

这里的技巧是使用winpty docker login

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gitlab-runner 本地构建 - 从非 TTY 设备登录 的相关文章

随机推荐