【Docker实战】jenkins卡在编译Dockerfile的问题

我们的项目是标准的CI/CD流程,也即是Gitlab+Jenkins+Harbor+Docker的容器自动化部署。
经历了上上周的docker灾难,上周的服务器磁盘空间灾难,这次又发生了jenkins卡住的灾难。
当然,这些灾难有一定的连锁反应,是先发生的docker灾难,然后因为要测试,导致镜像堆满服务器磁盘空间,磁盘空间满,又导致了jenkins卡住的问题。下面将我的解决过程记录下来,希望可以帮到可能会发生同样发生问题的大家。

图1

如上图所示,jenkins的121号版本编译成功之后,修改了几行代码,传到gitlab后,用jenkins进行编译。结果报错,jenkins报错的信息(Console Output)如下:

这是将镜像推送到镜像仓库Harbor发生的问题。

因为之前我观察到Harbor所在阿里云服务器磁盘使用率已达到92%,因此首先查看该服务器的情况。一看不得了,磁盘使用率已是100%。我删除了很多过期镜像,也删除了服务器本地拉取的一些镜像,但磁盘空间没变化,于是花了一些时间解决了这个问题(【docker&linux实战】阿里云服务器磁盘空间满了 – 经云的清净小站 (skycreator.top))。

就在我大呼万岁,准备开庆功宴的时刻,jenkins编译一直进行中。正常只需十几分钟就可以正常部署,这次花了半小时也没打包成功(见下图#123)。我又试了一次,这次1h 38min也没完成(下图#124)。

我打开#123和#124的Console Output,发现jenkins卡在了load build definition from Dockerfile这一行。

我一个游戏程序员,对于jenkins的操作不熟悉啊。于是有病乱投医,我进行了下面一系列的弯弯绕绕的操作。

1.docker版本问题

首先,我怀疑可能和docker版本有关。阿里云上三个服务器的docker版本都是1.24,而我本地windows上是1.26。本地windows上的这个项目docker build可以正常通过,而linux上不能通过,因此自然想到可能是docker的问题。

我们的服务器分为s1,s2,s3。其中s1是项目server,s2是gm后台server,s3是gitlab、Harbor、jenkins所在的server。因为是打包gm后台server,因此,我选择s2升级docker。

升级前先删除旧版本的docker,删除后更新不到新docker了。是的,太郁闷了!旧问题没解决,又产生了新问题。

曾经使用yum安装docker的路子走不通了。难道docker也下载不了了?我有些绝望,甚至想到了将安装包本地下载,再将它拷贝到阿里云上。

幸好,网上找到dnf的安装方法,成功升级了docker。

进入jenkins,再次编译,依然不通过。该方法失败!

2.配置检查

上一个问题无果后,我又想到了可能是docker的配置问题,或许该服务器没有设置私有仓库呢?

打开/etc/docker/daemon.json,里面确实设置了。

查看jenkins的pipeline,将项目server和gm后台server相互对比,也是没区别。

3.代码回退

#123的版本,我提交了一些代码,不会是提交的代码导致卡住吧?

虽然我的内心不认为会是这个原因,但试一试万一成功了呢?

于是,我使用git回退了代码(这里又复习了一下git的回退操作),再次编译,还是卡住。

4.新建任务

既然是jenkins的卡住,我怀疑可能是jenkins的这个任务有问题。于是我新建了一个jenkins任务,复制了gm后台的pipeline。

再次编译,依然故我!

5.改变焦点

由于对jenkins不熟,对于jenkins的docker build一知半解。这次我重新看了看jenkins的pipeline。

// 1.从gitlab上取代码
// 2.镜像编译
sh 'echo 镜像名称:${image_server_gm_server} && docker build -f ./server/Dockerfile -t ${image_server_gm_server} ./server'
sh 'echo 镜像名称:${image_server_gm_web} && docker build -f ./web/Dockerfile -t ${image_server_gm_web} ./web'
// 3.登陆Harbor,向Harbor推送镜像
// 4.登陆gm服务器,从私有仓库拉取镜像

从上下文来看,gitlab上取了代码后,对代码进行了镜像编译。这时,还没登陆镜像仓库,也没有登陆gm服务器。那么代码应该存放于jenkins所在s3服务器,而不是s2啊。

我尝试寻找代码所在位置,在jenkins所在目录的jenkins_home/workspace找到了jenkins的相关任务,任务中即是代码。于是我进入相应文件夹,使用docker build进行编译打包。

卡住了。问题找到了。估计是由于之前磁盘空间满,docker内部某个逻辑没走通,一直卡住,因此只要重启docker,估计问题就能解决。

不过这个s3的docker版本较低,顺便先升级吧。按照之前的操作,升级s3服务器的docker到最新。然后重启docker,再次编译,问题解决,如下图所示:

直接ctrl+c关掉。从浏览器进入jenkins,执行任务编译。成功!

这次虽然解决了问题,但中间弯弯绕绕浪费了好久。若是对jenkins充分了解,时间上可以更快。

这次特别感谢d u x t,他给我提出了不少新思路,让我思路开阔了很多。

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

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

相关文章

简单通用防篡改水印组件封装(vue3)

一、项目结构 二、项目代码 1.App.vue <template><div class"container"><Watermark text"版权所有"><div class"content"></div></Watermark><Watermark text"禁止转载" style"backgr…

数据资产赋能智能决策:通过深度挖掘数据资产价值,构建全面智能决策支持系统,精准分析,辅助决策,显著提升企业决策质量与效率,推动业务快速发展

一、引言 在信息化和数字化飞速发展的今天&#xff0c;数据已成为企业最宝贵的资产之一。数据资产不仅记录着企业的历史运营轨迹&#xff0c;更蕴含着企业未来发展的无限可能。然而&#xff0c;如何深度挖掘数据资产的价值&#xff0c;将其转化为推动企业发展的动力&#xff0…

七、(正点原子)Linux并发与竞争

Linux是多任务操作系统&#xff0c;肯定会存在多个任务共同操作同一段内存或者设备的情况&#xff0c;多个任务甚至中断都能访问的资源叫做共享资源。在驱动开发中要注意对共享资源的保护&#xff0c;也就是要处理对共享资源的并发访问。 一、并发与竞争 1、简介 并发就是多个…

Go - 4.数组和切片

目录 一.引言 二.定义 1.基础定义 2.引申理解 三.实战 1.估算切片的长度与容量 2.切片的切片长度与容量 四.拓展 1.估算切片容量的增长 2.切片底层数组的替换 五.总结 一.引言 本文主要讨论 Go 语言的数组 array 类型和切片 slice 类型。主要从二者的使用方法&…

【开源许可证】介绍

文章目录 概述具体总结 概述 开源许可证通常可以分为两大类&#xff1a;宽松式许可证及 Copyleft 许可证&#xff08;也称著作权&#xff09;。二者的差别主要在于宽松度以及与使用开源软件组件相关的要求和许可权限的多少。 当一个开源组件采用 Copyleft 许可证时&#xff0…

零成本!无需服务器,搭建你的个性化应用!

在快速发展的互联网时代&#xff0c;每个人都有创造自己应用的梦想。但是&#xff0c;传统的应用开发往往需要大量的技术和资源投入&#xff0c;这对于许多独立开发者和初创企业来说是一个巨大的挑战。幸运的是&#xff0c;现在有了 MemFire Cloud&#xff0c;这款无需服务器、…

工业 web4.0 的 UI 卓越非凡

工业 web4.0 的 UI 卓越非凡

前端易遭受的六大安全威胁,以及对应解决策略。

前端遭受安全威胁可能会导致用户隐私泄露、账户被盗用、系统遭受攻击、用户体验受损等严重后果&#xff0c;所有安全防御也成了前端开发者的必须课之一&#xff0c;贝格前端工场带领大家了解下常见的安全威胁。 一、前端开发面临的安全风险 1. 跨站脚本攻击&#xff08;XSS&a…

图形编辑器基于Paper.js教程02:图形图像编辑器概述

背景 由于笔者目前从事开发图形编辑器&#xff0c;在开始的那段时间里&#xff0c;调研和研究了非常多的图形编辑器&#xff0c;图像编辑器之类的软件&#xff0c;开源&#xff0c;闭源的&#xff0c;免费的&#xff0c;商业的都有。今天的这篇文章就来简单概述一下我调研的结…

SpringCloudNetflix组件整合

SpringCloudNetflix组件整合 Eureka注册中心 Eureka是什么 Eureka是netflix的一个子模块&#xff0c;也是核心模块之一&#xff0c;Eureka是一个基于REST的服务&#xff0c;用于定位服务&#xff0c;以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是…

Python实现音乐播放器 -----------内附源码

Python做一个简易的音乐播放器 简易音乐播放器 import time import pygamefile r歌曲路径 pygame.mixer.init() print(正在播放,file) track pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(130) pygame.mixer.music.stop()运行效果&#xff1a; 开始…

EE trade:现货黄金的计量单位及转换

在现货黄金市场中&#xff0c;计量单位的不同会影响投资者对价格的理解和对交易的操作。因此&#xff0c;了解现货黄金的计量单位是每一位投资者的必修课。对于那些刚刚踏入黄金投资的新手们来说&#xff0c;掌握这些知识尤为重要。本文将为您详细介绍现货黄金的主要计量单位及…

Harbor本地仓库搭建004_Harbor配置管理功能_分布式分发功能_仓库管理_用户管理_垃圾清理_审查服务_项目定额---分布式云原生部署架构搭建00

然后我们再看一下配置管理,这里主要有个认证模式 这里我们是数据库,其实就是我们安装的postgresql 可以看到还有LDAP对吧,这个其实就是自己公司如果有 LDAP服务器,那么可以对接过来,那么,这个时候 再登录harbor的时候,就可以直接使用公司的,LDAP来管理,所有的用户了,其实就是…

AI项目二十三:危险区域识别系统

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 在IPC监控视频中&#xff0c;很多IPC现在支持区域检测&#xff0c;当在区域内检测到有人闯入时&#xff0c;发送报警并联动报警系统&#xff0c;以保障生命和财产安全具有重大意义。它能够在第一时间检测到人员进入…

Python酷库之旅-比翼双飞情侣库(16)

目录 一、xlwt库的由来 1、背景和需求 2、项目启动 3、功能特点 4、版本兼容性 5、与其他库的关系 6、示例和应用 7、发展历史 二、xlwt库优缺点 1、优点 1-1、简单易用 1-2、功能丰富 1-3、兼容旧版Excel 1-4、社区支持 1-5、稳定性 2、缺点 2-1、不支持.xls…

[创业之路-116] :制造业企业的必备管理神器-ERP-为什么?传统制造业的转型-数字化、智能化下的需求,ERP是管理面和资金面的数字化、智能化的需要

目录 一、时代背景&#xff1a;制造业企业与智能制造 1.1 传统的制造业 1、概念 2、特点 3、面临的挑战&#xff1a;内卷严重 4、发展趋势 1.2 制造业的转型&#xff1a;数字化 1.3 制造业的转型&#xff1a;智能化 1.4 制造业的转型&#xff1a;无人工厂 1、智能化 …

每日一题——8行Python代码实现PAT乙级1029 旧键盘(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 ​编辑我的写法 代码分析 时间复杂度分析 空间复杂度分析 改进建议 方法 1&#…

leetcode33:搜索旋转数组

题目链接&#xff1a;33. 搜索旋转排序数组 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int search(vector<int>& nums, int target) {int n (int)nums.size();if(!n){return -1;}if(n 1){return nums[0] target ? 0 : -1;}int left 0, …

Java开发笔记Ⅲ (一些零碎记录)

一些报错处理 找不到注入的对象 可以在 dao 层 的接口上添加 Repository 注解 common 模块报错 Unable to find main class 由于common中只有一些常量与工具类&#xff0c;不需要主类&#xff0c;故出现该错误时只需删除pom文件中的build标签即可解决 网关模块报错 Failed…

正则表达式常用表示

视频教程&#xff1a;10分钟快速掌握正则表达式 正则表达式在线测试工具&#xff08;亲测好用&#xff09;&#xff1a;测试工具 正则表达式常用表示 限定符 a*&#xff1a;a出现0次或多次a&#xff1a;a出现1次或多次a?&#xff1a;a出现0次或1次a{6}&#xff1a;a出现6次a…