Докер не распознается как внутренняя или внешняя команда - PullRequest
0 голосов
/ 20 июня 2019

У меня есть следующий файл .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 Ответ

2 голосов
/ 20 июня 2019

В случае, если вы видите эту ошибку, ваша работа выполняется на бегуне, который настроен с неверным исполнителем.Ваша работа нуждается в бегуне, использующем Docker Executor.

Вы можете увидеть в выводе, который он говорит:

Using Shell executor...

Он должен сказать

Using Docker executor with image docker:latest ...

Вы можете пометитьрабочие места и докеры, чтобы убедиться, что задания выполняются только на нужных участниках.Когда вы регистрируете участника, укажите теги типа «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
...