Ola*_*del 1 gitlab docker gitlab-ci gitlab-ci-runner
将gitlab-runner设置为具有executor的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
Run Code Online (Sandbox Code Playgroud)
请注意尝试连接到docker-hub(我想)和凭据错误。但是我既不希望也不配置用户名/密码来访问docker-hub。有什么建议在这里有什么问题或如何进行调试吗?
向运行器注册了以下命令(该命令还指示配置文件的内容):
docker run --rm -ti \
-v <config-volume>:/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-runner register \
--tls-ca-file /etc/ssl/certs/server.crt \
--url https://my.server.url/gitlab/ --registration-token <token> \
--name myserver --tag-list "" \
--executor docker --docker-privileged --docker-image debian \
--non-interactive
Run Code Online (Sandbox Code Playgroud)
我--docker-privileged之所以使用,是因为我最初在这里讨论了相同的问题(感谢wendellmva)。我只是无法配置以特权本身运行gitlab-runner容器,但是即使没有,也看不到链接失败问题问题。
为了克服这一点,需要覆盖CI_REGISTRY_USER项目设置-> CI / CD->变量块中的变量。分配一个空值将超过这一点。
背景:通过导出项目,然后使用jq解析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
}
# ...
Run Code Online (Sandbox Code Playgroud)
因此,显然有一些非空字符串预装到CI_REGISTRY_USER,但带有无效CI_REGISTRY_PASSWORD。
我还没有发现在哪里可以对所有项目进行全局设置,或者如何编辑AutoDevOps管道。
| 归档时间: |
|
| 查看次数: |
1031 次 |
| 最近记录: |