2017-09-25 80 views
0

我尝试使用由digitallumberjack提供的GitLab CI跑步者,因为它提供了从容器中使用Docker命令的支持。Docker在GitLab CI跑步者容器中不可用

GitLab CI亚军脚本:

docker run --name gitlab-ci-multi-runner -d --restart=always \ 
    --volume /var/run/docker.sock:/var/run/docker.sock \ 
    --volume /mnt/data/gitlab/gitlab-runner:/home/gitlab_ci_multi_runner/data \ 
    --env='CI_SERVER_URL=https://gitlab.dev.abc.net/ci' --env='RUNNER_TOKEN=RijUZPnMjGeNF2JYt' \ 
    --env='RUNNER_DESCRIPTION=runnerA' --env='RUNNER_EXECUTOR=docker' \ 
    --env='RUNNER_DOCKER_IMAGE=docker:17.07.0-ce' --env='RUNNER_DOCKER_MODE=socket' \ 
    --link gitlab.dev.abc.net \ 
    digitallumberjack/docker-gitlab-ci-multi-runner:v9.3.0-1 

.gitlab-ci.yml内容:

image: node:6.11 

types: 
     - build 
     - deploy 

build_app: 
     type: build 
     script: "bash chmod +x ./configure_proxy_artifactory.sh" 
     script: "bash ./configure_proxy_artifactory.sh" 

然而,当GitLab CI建设运行后,我得到了亚军日志中出现以下错误:

./configure_proxy_artifactory.sh: line 13: docker: command not found 

似乎Docker仍未配置上述运行脚本。任何想法如何我可以解决这个问题?

UPDATE:从容器内,这里是我的观察:

[email protected]:/home/gitlab_ci_multi_runner# ls -l /var/run/docker.sock 
srw-rw---- 1 root docker 0 Jul 21 00:53 /var/run/docker.sock 
[email protected]:/home/gitlab_ci_multi_runner# docker ps 
bash: docker: command not found 
+0

您可以访问容器并执行docker ps吗?还可以看看/var/run/docker.sock是否存在以及它有什么权限 – Sergiu

+0

@Sergiu:请检查我的帖子中的'UPDATE'。 – Technext

回答

0

我不知道你为什么不使用Gitlab亚军的官方图片:gitlab/gitlab亚军:最新的,但我相信这只是一个偏好问题,我也建议你也应该通过 - - 特权标志,看看是否有帮助。

+0

即使添加'--privileged'标志,错误仍然存​​在。 (目前,我正在使用官方的Omnibus GitLab作为Docker容器运行,不过,我很快将把它移植到Kubernetes上,在Kubernetes中,我将使用单独的容器来处理GitLab,Redis和Postgres,为此我测试了[sameersbn's ](https://github.com/sameersbn/docker-gitlab)的图像,我想用这些来确保不会出现兼容性问题。另外,我不认为即使是GitLab的官方运行者也提供Docker访问权限,它? – Technext

+1

嗯,我已经使用该映像的配置与/var/run/docker.sock差不多,然后我安装了数据卷,因此我不需要在运行时传递变量。 Runner01: 特权:true image:gitlab/gitlab-runner:latest stdin_open:true volumes: -/var /运行/ docker.sock:/var/run/docker.sock -/data/runner/config:/ etc/gitlab-runner -/data/gitlab/runner/data:/ data tty:true labels: io.rancher.container.pull_image:总是 io.rancher.scheduler.global:'true' – Sergiu

+0

因此,你可以看到我一直在使用Rancher来启动我的Gitlab服务器和跑步者:)我希望这有助于 – Sergiu

相关问题