Docker 未被识别为内部或外部命令

Docker is not recognized as an internal or external command

我有以下 .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

在您看到此错误的情况下,您的工作是 运行ning 在配置了错误执行程序的 运行ner 上。您的工作需要 运行ner 使用 docker 执行器。

你可以在输出中看到它说:

Using Shell executor...

应该说

Using Docker executor with image docker:latest ...

您可以标记作业和 docker 运行 人,以确保作业仅 运行 需要 运行 人。 当您注册 运行ner 时指定像 "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