docker - Docker 未被识别为内部或外部命令
问题描述
我有以下 .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
解决方案
在您看到此错误的情况下,您的作业在配置了错误执行器的运行器上运行。您的工作需要使用 docker 执行器的运行器。
您可以在输出中看到它说:
Using Shell executor...
应该说
Using Docker executor with image docker:latest ...
您可以标记作业和 docker 运行器,以确保作业仅在所需的运行器上运行。当您注册跑步者时,请指定“docker”之类的标签,然后在作业配置中添加 tags 属性:
step-deploy-dev:
stage: deploy
script:
- echo build and deploy
- docker build -t myimage myproject/.
- echo finished build and deploy..
environment: master
tags:
- docker
推荐阅读
- php - 如果单元格中的值重复,PHP会合并几行
- javascript - 移动版的下拉导航栏不会掉
- javascript - 将数组合并和相乘成一个数组
- swiftui - SwiftUI TextField 可触摸区域
- javascript - 如何在节点 js 中使用 SFTP 限制下载速度
- c# - 无法使用 NCryptExportKey 和 NCryptImportKey 重新导入私钥
- c# - 盒子对撞机没有在玩家的所有轴上记录碰撞
- reactjs - 键入时反应不聚焦输入字段
- regex - 文件类型扩展之前所有非法文件名字符的正则表达式
- bash - 当且仅当从 bash 脚本调用 Pymol 时才会给出 seg-fault