我正在尝试在gitlab ci管道中建立我的docker形象。
但是,它无法找到Docker命令。
/bin/bash:第69行:docker:找不到命令错误:作业失败:执行远程命令时出错:命令以非零退出代码终止:在Docker容器中执行时出错:1
.gitlab-ci.yml格式
stages:
- quality
- test
- build
- deploy
image: node:8.11.3
services:
- mongo
- docker:dind
before_script:
- npm install
quality:
stage: quality
script:
- npm run-script lint
test:
stage: test
script:
- npm run-script test
build:
stage: build
script:
- docker build -t server .
deploy:
stage: deploy
script:
- echo "TODO deploy push docker image"
3条答案
按热度按时间13z8s7eq1#
你需要选择一个包括docker二进制文件的映像
k97glaaz2#
你有两种方法来修复这个问题,你需要编辑你的config.toml文件(位于你安装gitlab runner的地方)。
备选案文1
在配置toml中:
在. gitlab-ci. yml中:
备选案文2
在配置toml中:
在. gitlab-ci. yml中:
重要提示:一旦您更改了config. toml,您可能需要重新启动GITLAB Runner(具体取决于操作系统)-我确实重新启动了我的,不确定如果您不重新启动它会发生什么!
重新启动gitlab runner的说明在这里... https://docs.gitlab.com/runner/commands/ ...基本上是
gitlab-runner restart
,但在Windows上我必须使用Windows "服务"来重新启动它为什么会有这个问题?
priviledged=true
去掉了对接器:未找到命令问题然而,
docker:dind
现在需要TLS证书(不管它们是什么)。如果你对旧的Docker版本很满意,那么你可以使用选项1。如果你想要最新的,你需要设置Gitlab CLI来使用它们,这就是选项2。JidoEidoSidoUidoss爱你:)更多信息... https://about.gitlab.com/blog/2019/07/31/docker-in-docker-with-docker-19-dot-03
rvpgvaaj3#
这里的问题是节点Docker映像没有嵌入Docker二进制文件。
两种可能性:
请注意,在这两种情况下,您都必须在代理中启用Docker。请参阅documentation。