Gitlab CI/CD docker命令报错:/usr/bin/bash: line 136: docker:command not found

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 场景
  • 2. 报错
  • 3. 分析
  • 4. 解决


1. 场景

在使用gitlab cicd时,在构建镜像阶段docker命令报错
.gitlab-ci.yml文件中构建镜像阶段的内容如下

#任务部分,根据定义的stage顺序来执行任务
#构建镜像
job2-build:#任务阶段stage: build#任务引用的镜像,构建镜像时会使用Dockerfile文件中的内容,包含镜像配置,故该job中无需镜像配置#任务执行选用的runner的标签,定义后会根据标签选用对应的runner执行任务tags:- runner-01#局部前置脚本命令,仅作用于此任务部分before_script:- echo "开始构建镜像--->"#执行脚本,列举jar包文件夹,构建镜像,打标签,推送镜像,删除镜像script:#提示信息打印- echo '打标签---推送镜像---删除镜像'- ls#这里可以直接构建镜像,省略前面的步骤- docker build -t  $PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG $IMAGE_HARBOR_REPOSITORY/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#将镜像推送到到harbor仓库- docker push ${IMAGE_HARBOR_REPOSITORY}/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#查看镜像是否生成- docker images | $PROJECT_IMAGE_TAG#删除jar包- rm -rf app.jar#检查是否被删除- ls#删除打标签后用于推送到harbor仓库的的镜像- docker rmi -f $IMAGE_HARBOR_REPOSITORY/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#查看镜像是否被删除- docker images | $PROJECT_IMAGE_TAG

2. 报错

报错如下

/usr/bin/bash: line 136: docker:command not found

截图
在这里插入图片描述

3. 分析

该报错表示无法使用docker命令,没有找到对应的docker配置
所以应该是环境中没有docker,需要指定镜像,且镜像必须包含docker

4. 解决

添加参数指定镜像,且镜像为docker(或者包含docker的镜像),然后指定services,也是docker

#任务部分,根据定义的stage顺序来执行任务
#构建镜像
job2-build:#任务阶段stage: build#任务引用的镜像,构建镜像时会使用Dockerfile文件中的内容,包含镜像配置,故该job中无需镜像配置image: docker:latestservices:- docker:dind#任务执行选用的runner的标签,定义后会根据标签选用对应的runner执行任务tags:- runner-01#局部前置脚本命令,仅作用于此任务部分before_script:- echo "开始构建镜像--->"#执行脚本,列举jar包文件夹,构建镜像,打标签,推送镜像,删除镜像script:#提示信息打印- echo '打标签---推送镜像---删除镜像'- ls#这里可以直接构建镜像,省略前面的步骤- docker build -t  $PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG $IMAGE_HARBOR_REPOSITORY/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#将镜像推送到到harbor仓库- docker push ${IMAGE_HARBOR_REPOSITORY}/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#查看镜像是否生成- docker images | $PROJECT_IMAGE_TAG#删除jar包- rm -rf app.jar#检查是否被删除- ls#删除打标签后用于推送到harbor仓库的的镜像- docker rmi -f $IMAGE_HARBOR_REPOSITORY/$PROJECT_IMAGE_NAME:$PROJECT_IMAGE_TAG#查看镜像是否被删除- docker images | $PROJECT_IMAGE_TAG

再出提交更新代码即可


感谢阅读,祝君暴富!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/477991.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chrome版本117驱动下载路,解决版本不匹配问题

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

数字化商品管理:革新鞋服零售模式,引领智能商业新时代

随着科技的快速发展,数字化浪潮席卷各行各业,鞋服零售企业亦不例外。在这个新时代,数字化商品管理不仅成为鞋服零售企业革新的关键,更是其引领智能商业浪潮的重要引擎。本文将围绕数字化商品管理如何深刻影响鞋服零售模式&#xf…

Java 21 新特性的扫盲级别初体验

一、前言 JDK 21 于 2023 年 9 月发布,作为目前讨论热度最高的JDK,虽然大家都开玩笑说你发任你发,我用Java8,但是作为一个Javaer,对JDK21的新特性还是要有所了解的。 以下是 JDK 21 的新功能列表: 虚拟线…

Java关键字大全

概览 以上是我们学习Java从小白到入门能够接触到的关键字。 下面整理一些我们刚开始学习Java会经常用到的关键字的用法概述: 一、本数据类型(4类8种) 类型种类: 四类八种整型byte,short,int,long 浮点型float,double字符型cha…

GA-kmedoid 遗传算法优化K-medoids聚类

遗传算法优化K-medoids聚类是一种结合了遗传算法和K-medoids聚类算法的优化方法。遗传算法是一种基于自然选择和遗传机制的随机优化算法,它通过模拟生物进化过程中的遗传、交叉、变异等操作来寻找问题的最优解。而K-medoids聚类算法是一种基于划分的聚类方法&#x…

Python:常见的运算符

一、算术运算符 算术在数学中可以直接运用的一些运算规则: ------- 加法运算 - ------- 减法运算 * ------- 乘法运算 / ------- 除法运算 强数据类型语言中/表示的整除运算 // ------ 整除 % ------ 取余运算 ** ------ 幂次方运算 >>> a 10 >>&…

【数据结构】13:表达式转换(中缀表达式转成后缀表达式)

思想: 从头到尾依次读取中缀表达式里的每个对象,对不同对象按照不同的情况处理。 如果遇到空格,跳过如果遇到运算数字,直接输出如果遇到左括号,压栈如果遇到右括号,表示括号里的中缀表达式已经扫描完毕&a…

业务流程图与功能流程图到底有什么区别?

先介绍一下业务流程图: 一、业务流程图 业务流程图(Transaction Flow Diagram,TFD)是一种描述管理系统内各单位、人员之间的业务关系、作业顺序和管理信息流向的图表。它用一些规定的符号及连线表示某个具体业务的处理过程,帮助分析人员找出…

基于Spring Boot的车辆管理系统,计算机毕业设计(带源码+论文)

源码获取地址: 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1759578742199496705

阿基米德签证小程序管理系统功能清单

阿基米德签证小程序管理系统,底层架构采用当前国内最流行的php框架thinkphp8.0、采用广泛使用的MYSQL数据库,管理后台前后台分离,同时使用了当今最流行的基于VUE3和elementPlus前端框架,小程序采用了支持多端合一的UNI-APP开发&am…

【AI数字人-论文】AD-NeRF论文

文章目录 NeRFAD-NeRF模型NeRF体渲染个体NeRF表示背景和姿态编辑 loss 参考 NeRF 将一个连续的场景表示为一个输入为5D向量的函数,这个函数为NeRF函数,它的输入由一个空间点的3D位置 x ( x , y , z ) \mathbf{x} \left( x, y, z \right) x(x,y,z)和它…

微服务-微服务Nacos配置中心

1.1 配置中心架构 1.2 Config Client源码分析 配置中心核心接口ConfigService public class ConfigServerDemo {public static void main(String[] args) throws NacosException, InterruptedException {String serverAddr "localhost";String dataId "naco…