2017-09-25 83 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

相關問題