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.mzph.cn/news/690652.shtml

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

相关文章

深入实战:ElasticSearch的Rest API与迭代器模式在高效查询中的应用

在我们公司,大多数Java开发工程师在项目中都有使用Elasticsearch的经验。通常,他们会通过引入第三方工具包或使用Elasticsearch Client等方式来进行数据查询。然而,当涉及到基于Elasticsearch Rest API的/_sql?formatjson接口时,…

alibaba的fastjson怎么将json字符串转换为范型对象

问题 alibaba的fastjson怎么将json字符串转换为范型对象? import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.TypeReference;public static void main(String[] args) {String jsonStr "{}";ResResult…

2 物理层(三):数据传输的方式,同步传输和异步传输

目录 1 数据的传输方式1.1 并行传输1.2 串行传输 2 同步传输和异步传输2.1 同步传输2.2 异步传输2.3 同步和异步传输对比 1 数据的传输方式 在数据通信中,数据传输方式有并行传输和串行传输两种 1.1 并行传输 定义:并行传输是指数据以成组的方式在多个…

NC 输出模板自定义变量使用加减乘除余等公式计算时无法显示结果的问题处理办法

NC 输出模板自定义变量使用加减乘除余等公式计算时无法显示结果的问题处理办法 比如,求两个字段的差,如果这样写,模板打印输出的时候,是不会显示有值的: sub(vouchercreditamount, voucherdebitamount) 或者 voucherc…

强化学习入门到不想放弃-2

第一篇链接:强化学习入门到不想放弃-1 (qq.com) 上节课我们用CMU的经典问题,多臂老虎机讨论了,无状态物体的探索和利用,这节课我们用走格子来做一下动态规划算法 上节课的问题,我们完全不知道这些老虎机的中奖概率,而这节课我们考虑环境是已知的,说白了,我们可以开启上…

picker选择器-年月日选择

从底部弹起的滚动选择器。支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器。 学习一下日期选择器 平台差异说明 日期选择默…

微信小程序之会议OA首页后台交互

后台准备 springbootmybatis pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

K8s进阶之路-控制器无状态服务:

RC/RS/Deployment 控制器 deployment无状态&#xff08;最常用&#xff09;&#xff1a; nginx和Apache statefulset有状态&#xff1a; mysql和redis damonset初始化 job一次性任务 cronjob任务计划 1无状态&#xff1a;不会对本地环境产生依赖如&#xff1a;nginx和Apache …

Kubernetes基础(二十二)-k8s持久化存储详解

1 volume 1.1 介绍 在容器中的磁盘文件是短暂的&#xff0c;当容器崩溃时&#xff0c;Kubelet会重新启动容器&#xff0c;但容器运行时产生的数据文件都将会丢失&#xff0c;之后容器会以最干净的状态启动。另外&#xff0c;当一个Pod运行多个容器时&#xff0c;各个容器可能…

vs2022中 _CRT_SECURE_NO_WARNINGS错误提示,解决办法(绝对管用)

下面给出这个问题的解决方案&#xff1a; 方案一 在预编译头文件stdafx.h里&#xff08;注意&#xff1a;一定要在没有include任何头文件之前&#xff09;定义下面的宏&#xff1a; #define _CRT_SECURE_NO_DEPRECATE或声明 #pragma warning(disable:4996) 更改预处理定义&…

新版Java面试专题视频教程——框架篇

新版Java面试专题视频教程——框架篇 框架篇 01-框架篇介绍02-Spring-单例bean是线程安全的吗03-Spring-AOP相关面试题04-Spring-事务失效的场景05-Spring-bean的生命周期5.1 BeanDefinition 06-Spring-bean的循环依赖(循环引用)6.1 一般对象的循环依…

【C++】类与对象的项目实践 — 日期管理工具

类与对象的实践 项目背景项目需求项目实现1 日期结构设计2 构造函数2.1 全缺省构造函数2.2 拷贝构造函数2.3 析构函数 3 赋值运算符重载3.1 重载3.2 重载重载前置 和 后置 4 关系操作符重载5 工具方法5.1 计算日期差5.2 日期转换为字符串5.3 通过字符串构建对象 完整源代码Dat…

C++递归复习

骨牌铺路 #include<bits/stdc.h> using namespace std; int n,m,sum0; int f(int); int main() {cin>>n;cout<<f(n);return 0; } int f(int n){if(n1) return 1;if(n2) return 2;if(n3) return 4;return f(n-1)f(n-2)f(n-3); } 统计每个月兔子的总数 #includ…

云数贸云生活中心:用云生活理念引领社会和谐发展

在数字经济的浪潮下&#xff0c;云数贸云生活中心不仅在科技进步与文明程度上作出了积极贡献&#xff0c;更在推动社会和谐、承担企业社会责任方面展现出了模范作用。通过与“草根互助爱心社区”的紧密合作&#xff0c;云数贸云生活中心正致力于构建一个更加和谐、互助的社会环…

socket通信 smallchat简介

文章目录 前言一、socket的基本操作(1) socket()函数(2) bind()函数(3) listen()、connect()函数(4) accept()函数(5) read()、write()等函数(6) close()函数 二、smallchat代码流程smallchat-server.csmallchat-client.cchatlib.c 参考资料 前言 本文介绍了socket通信的相关A…

六、图像的几何变换

文章目录 前言一、镜像变换二、缩放变换 前言 在计算机视觉中&#xff0c;图像几何变换是指对图像进行平移、旋转、缩放、仿射变换和镜像变换等操作&#xff0c;以改变图像的位置、尺寸、形状或视角&#xff0c;而不改变图像的内容。这些变换在图像处理、模式识别、机器人视觉…

更改WordPress作者存档链接author和用户名插件Change Author Link Structure

WordPress作者存档链接默认情况为/author/Administrator&#xff08;用户名&#xff09;&#xff0c;为了防止用户名泄露&#xff0c;我们可以将其改为/author/1&#xff08;用户ID&#xff09;&#xff0c;具体操作可参考『如何将WordPress作者存档链接中的用户名改为昵称或ID…

猪圈Pigsty-PG私有RDS集群搭建教程

博客 https://songxwn.com/Pigsty-PG-RDS/ 简介 Pigsty 是一个更好的本地自建且开源 RDS for PostgreSQL 替代&#xff0c;具有以下特点&#xff1a; 开箱即用的 PostgreSQL 发行版&#xff0c;深度整合地理、时序、分布式、图、向量、分词、AI等 150 余个扩展插件&#xff…

文件IO的lseek以及目录IO

文件IO之 lseek: 1. lseek off_t lseek(int fd, off_t offset, int whence); 功能: 重新设定文件描述符的偏移量 参数: fd:文件描述符 offset:偏移量 whence: SEEK_SET 文件开头 …

基于scrapy框架的单机爬虫与分布式爬虫

我们知道&#xff0c;对于scrapy框架来说&#xff0c;不仅可以单机构建复杂的爬虫项目&#xff0c;还可以通过简单的修改&#xff0c;将单机版爬虫改为分布式的&#xff0c;大大提高爬取效率。下面我就以一个简单的爬虫案例&#xff0c;介绍一下如何构建一个单机版的爬虫&#…