Docker无法识别为内部或外部命令

时间:2019-06-20 09:39:16

标签: docker gitlab gitlab-ci gitlab-ci-runner

我有以下.gitlab-ci.yml文件:

image: docker:latest

variables:
 DOCKER_DRIVER: overlay2

services:
 - docker:dind

before_script:
 - docker info

stages:
 - deploy

step-deploy-dev:
 stage: deploy
 script:
  - echo build and deploy
  - docker build -t myimage myproject/.
  - echo finished build and deploy..
 environment: master

有时(我无法确定原因),我收到以下错误:

Running with gitlab-runner 10.8.0 (079aad9e)
  on My-CI de8391de
Using Shell executor...
Running on DEVServer01...
Fetching changes...
HEAD is now at e5f12f9 Update .gitlab-ci.yml
From http://gitlab.ourinternalserver.nl/my/myproject
   e5f12f9..3b46be8  master     -> origin/master
Checking out 3b46be8a as master...
Skipping Git submodules setup
$ docker info
'docker' is not recognized as an internal or external command,
operable program or batch file.
ERROR: Job failed: exit status 9009

1 个答案:

答案 0 :(得分:2)

在看到此错误的情况下,您的作业在配置了错误执行程序的运行程序上运行。您的工作需要使用docker executor的跑步者。

您可以在输出中看到:

Using Shell executor...

应该说

Using Docker executor with image docker:latest ...

您可以标记作业和docker运行程序,以确保作业仅在所需的运行程序上运行。 注册跑步者时,请指定标签,例如“ docker”,然后在作业配置中添加标签属性:

step-deploy-dev:
 stage: deploy
 script:
  - echo build and deploy
  - docker build -t myimage myproject/.
  - echo finished build and deploy..
 environment: master
 tags:
  - docker