Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Gitlab runner:登录Gitlab容器注册表失败_Docker_Gitlab_Gitlab Ci_Gitlab Ci Runner - Fatal编程技术网

Docker Gitlab runner:登录Gitlab容器注册表失败

Docker Gitlab runner:登录Gitlab容器注册表失败,docker,gitlab,gitlab-ci,gitlab-ci-runner,Docker,Gitlab,Gitlab Ci,Gitlab Ci Runner,在将Docker设置为具有Docker执行器的Docker容器后,我无法运行任何构建。显示的日志如下所示: Running with gitlab-runner 11.4.2 (cf91d5e1) on <hostname> 9f1c1a0d Using Docker executor with image docker:stable-git ... Starting service docker:stable-dind ... Pulling docker image dock

在将Docker设置为具有
Docker
执行器的Docker容器后,我无法运行任何构建。显示的日志如下所示:

Running with gitlab-runner 11.4.2 (cf91d5e1)
  on <hostname> 9f1c1a0d
Using Docker executor with image docker:stable-git ...
Starting service docker:stable-dind ...
Pulling docker image docker:stable-dind ...
Using docker image sha256:acfec978837639b4230111b35a775a67ccbc2b08b442c1ae2cca4e95c3e6d08a for docker:stable-dind ...
Waiting for services to be up and running...
Pulling docker image docker:stable-git ...
Using docker image sha256:a8a2d0da40bc37344c35ab723d4081a5ef6122d466bf0a0409f742ffc09c43b9 for docker:stable-git ...
Running on runner-9f1c1a0d-project-1-concurrent-0 via a7b6a57c58f8...
Fetching changes...
HEAD is now at 5430a3d <Commit message>
Checking out 5430a3d8 as master...
Skipping Git submodules setup
$ # Auto DevOps variables and functions # collapsed multi-line command
$ setup_docker
$ build
Logging to GitLab Container Registry with CI credentials...
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
ERROR: Job failed: exit code 1
使用gitlab runner 11.4.2(cf91d5e1)运行
关于9f1c1a0d
使用Docker executor与图像Docker:stable git。。。
正在启动服务docker:stable dind。。。
正在拖动docker图像docker:稳定的dind。。。
使用docker映像sha256:ACFEC978837639B423011B35A775A67CCBC2B08B442C1AE2CCA4E95C3E6D08A用于docker:stable dind。。。
正在等待服务启动并运行。。。
正在提取docker图像docker:stable git。。。
使用docker映像sha256:a8a2d0da40bc37344c35ab723d4081a5ef6122d466bf0a0409f742ffc09c43b9用于docker:stable git。。。
通过a7b6a57c58f8在runner-9f1c1a0d-project-1-concurrent-0上运行。。。
正在获取更改。。。
头部现在是5430a3d
正在签出5430a3d8作为主控。。。
正在跳过Git子模块安装程序
$#自动导出变量和函数#折叠的多行命令
$setup\u docker
$build
使用CI凭据登录到GitLab容器注册表。。。
警告通过CLI使用--password是不安全的。使用--password stdin。
来自守护进程的错误响应:Gethttps://registry-1.docker.io/v2/: 未经授权:用户名或密码不正确
错误:作业失败:退出代码1
请注意尝试登录docker hub(我猜)和凭据错误。但我不希望也不配置访问docker hub的用户名/密码。有什么建议这里出了什么问题或者如何继续调试吗

已使用以下命令注册运行程序(该命令还指示配置文件的内容):

docker运行--rm-ti\
-v:/etc/gitlab runner\
-v$(pwd)/self-signed-server.crt:/etc/ssl/certs/server.crt\
-v/var/run/docker.sock:/var/run/docker.sock\
gitlab/gitlab运行程序寄存器\
--tls ca文件/etc/ssl/certs/server.crt\
--网址https://my.server.url/gitlab/ --注册令牌\
--名称myserver--标记列表“”\
--executor docker--docker privileged--docker image debian\
--非交互式

我使用了
--docker privileged
,因为我最初讨论了相同的问题(谢谢)。我只是无法配置运行gitlab runner容器本身的特权,但即使我没有看到链接失败问题。

要通过这一点,需要覆盖项目设置->CI/CD->变量块中的
CI\U注册表用户
变量。分配一个空值将超过此点

背景:通过导出项目,然后用解析JSON设置,可以获得运行的命令的预配置列表:

jq -r .pipelines[0].stages[0].statuses[0].commands project.json
# ...
function registry_login() {
  if [[ -n "$CI_REGISTRY_USER" ]]; then
    echo "Logging to GitLab Container Registry with CI credentials..."
    docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    echo ""
  fi
}
# ...
因此,显然有一些非空字符串预加载到
CI\u REGISTRY\u USER
,但带有无效的
CI\u REGISTRY\u密码


我还没有找到为所有项目全局设置这些设置的位置,或者如何编辑AutoDevOps管道。

Olaf,您可能已经找到了全局启用它的位置,但是对于其他人,请转到您的组,例如使用组]/-/settings/ci_cd#runners设置,然后展开变量。
jq -r .pipelines[0].stages[0].statuses[0].commands project.json
# ...
function registry_login() {
  if [[ -n "$CI_REGISTRY_USER" ]]; then
    echo "Logging to GitLab Container Registry with CI credentials..."
    docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
    echo ""
  fi
}
# ...