[每周一更]-(第74期):Docker-compose 部署Jenkins容器-英文版及错误纠错
1、前文概要
通过物理机部署Jenkins前文已经讲过(地址:[Jenkins] 物理机 安装 Jenkins),也已经公司内部平稳运行若干年,考虑到容器化的使用场景,部分项目都采用容器运行,开始考虑部署容器化的Jenkins,殊不知,这也是入坑的开始;
以下提供下最近今日几次调试遇到的错误及思路,各种命令均可在Jenkins容器内适用,目前支持:go、git、node、docker等命令
友情提示:容器化部署的Jenkins所有的操作命令都是在容器内生效;至今没解决的事:在Jenkins中将容器内的文件拷贝到宿主机,尝试docker cp xx,基本都是通过容器的Jenkins home,拷贝到容器的某个地址,容器内操作是通顺的;目前能想到解决方案是:Jenkins挂载的盘映射到宿主机,在宿主机配置nginx及其他,跑服务go/php等服务(问题就在于其他服务不在这个jenkins_home映射的地址里)
容器化部署Jenkins的英文版,中文版出问题走不通(go环境问题等)
jenkinsci/blueocean(中文文档[Jenkins] Docker 安装Jenkins及迁移流程)和
jenkins/jenkins(英文文档)
----自己配置jenkins1用于配置英文版jenkins--------
升级到版本:2.433 - 2023/11/23
version: '3'services:jenkins1:image: jenkins/jenkins:latestcontainer_name: jenkins1ports:- "9093:8080"- "50000:50000"volumes:- /usr/bin/docker:/usr/bin/docker- /var/lib/jenkins:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /etc/localtime:/etc/localtime- /etc/localtime:/etc/localtimerestart: always
1.1、查看容器内的ip
docker inspect -f ‘{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ jenkins1(容器名)
1.2.、主机访问容器 (容器访问物理机ip:端口)
curl http://<container_ip>:<container_port>
1.3、查看容器网络
docker network inspect <network_name_or_id>
1.4、查看日志
docker logs jenkins1
1.5、错误汇总
(0)问题: 启动jenkins成功,浏览器无法访问 (会有一段延迟,刷新,等待一会)
可以先进入容器,curl XGET http://localhost:8080是否有返回消息
如果有返回消息,证明Jenkins是正常的,然后ping hostIP,查看容器与host的网络是否正常;
(1)报错:JSONObject[“scm”] is not a JSONObject.
在配置Git仓库的时候出问题,考虑到公钥配置没问题,应该是版本问题;i
google一圈找不得答案、chatGPT也不行、最后biying.com 找到同行的解决方案
方案:版本回退4.209 或Build Timeout Plugin 更新
(2)配置go全局变量但是命令行报错:
+ go version
/tmp/jenkins13208882337710441847.sh: 12: go: not found
解析:配置go全局路径:系统设置-安全-全局-Go,配置容器内的路径:/var/jenkins_home/go所在路径
# 清楚go的编译缓存
go clean -modcache
go build
(3)touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Operation not permitted
chmod -R 777 /var/lib/jenkins
(4)容器内拷贝数据出错,找不到命令(容器安装的所有操作都是容器的地址操作)
需要安装插件:Copy Artifact插件、Docker插件
配置Docker插件,再Cloud中的“Docker Host URI”字段中输入,unix:///var/run/docker.sock (配置这个无效,走 -v挂载可以)
# 容器内创建文件,拷贝到容器里
echo "Hello World!" > output.txt
docker cp output.txt 容器名:/var/jenkins_home/# 测试容器内命令是否有效
docker exec -it jenkins1 docker info
/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
(5)容器内无法运行docker命令
解决方案:docker-compose中配置
# /usr/local/bin/docker 需要改为 /usr/bin/docker 挂载
volumes:// 这里是为了为jenkins容器能调用host主机的docker所做的映射- /usr/bin/docker:/usr/bin/docker// 此映射卷主要用于存储jenkins的配置文件到当前目录下- /var/lib/jenkins/:/var/jenkins_home/// 此映射卷主要用于执行docker镜像内的docker命令执行 共享当前docker的状态- /var/run/docker.sock:/var/run/docker.sock
2、最终效果图:
相关文章:

[每周一更]-(第74期):Docker-compose 部署Jenkins容器-英文版及错误纠错
1、前文概要 通过物理机部署Jenkins前文已经讲过(地址:[Jenkins] 物理机 安装 Jenkins),也已经公司内部平稳运行若干年,考虑到容器化的使用场景,部分项目都采用容器运行,开始考虑部署容器化的J…...

MySQL日期函数sysdate()与now()的区别,获取当前时间,日期相关函数
select sleep(2) as datetime union all select sysdate() -- sysdate() 返回的时间是当前的系统时间,而 now() 返回的是当前的会话时间。 union all select now() -- 等价于 localtime,localtime(),localtimestamp,localtimestamp(),current_timestamp,curre…...
邦芒解析:面试怎么谈自身优缺点
在面试时,当被问到你的优缺点时,你可以这样回答: 优点: 我的工作能力强,能够高效地完成任务。我对技术有热情,喜欢学习新的技能和知识。我善于沟通,能够与不同背景的人进行有效沟通。我注重细节…...

【libGDX】加载G3DJ模型
1 前言 libGDX 提供了自己的 3D 格式模型文件,称为 G3D,包含 g3dj(Json 格式)和 g3db(Binary 格式)文件,官方介绍见 → importing-blender-models-in-libgdx。 对于 fbx 文件,libGDX…...

0基础学习VR全景平台篇第123篇:VR视频航拍补天 - PR软件教程
上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 嗨,大家好,今天我们来介绍【航拍VR视频补天】。之前已经教给了大家如何处理航拍图片的补天,肯定有很多小伙伴也在好奇,航拍的VR视频…...
webpack打包三方库直接在html里面使用
场景:我是小程序中使用wxmp-rsa库进行加密,然后在html里面解密 我就想把wxmp-rsa库打包到一个js里面,然后在html里面直接引入使用。 webpack配置 const path require("path"); const MiniCssExtractPlugin require("mini-…...
Redis使用increment方法返回null的原因以及解决方案
public static void main(String[] args) {redisTemplate.setEnableTransactionSupport(true); //开启事务支持redisTemplate.multi(); //标记事务块的开始redisTemplate.opsForValue().set("name","zs");redisTemplate.opsForValue().set("pass&qu…...
springMVC,什么是Spring MVC? Spring MVC的主要组件? springMVC工作原理/流程 MVC框架
文章目录 springMVC什么是Spring MVC?Spring MVC的主要组件?springMVC工作原理/流程MVC框架 今天以这篇文章简单和大家聊聊springMVC相关的内容,和原理,以及框架; springMVC 什么是Spring MVC? Spring MV…...

【论文阅读】TACAN:控制器局域网中通过隐蔽通道的发送器认证
文章目录 摘要一、引言二、相关工作三、系统和对手模型3.1 系统模型对手模型 四、TACAN4.1 TACAN 架构4.2 发送方认证协议4.3 基于IAT的隐蔽通道4.4 基于偏移的隐蔽通道(本节公式格式暂未整理)4.5 基于LSB的隐蔽通道 摘要 如今,汽车系统与现…...

C语言第三十五弹---打印九九乘法表
C语言打印九九乘法表 思路:观察每一行可以看出乘号右边的一行值都是相同的,而乘号左边不断变化,所以使用嵌套循环,控制好 乘号左右值变化的条件即可。 #include <stdio.h>int main() {for (int i 1; i < 9; i){for (in…...

线性代数的艺术
推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。 《线性代数的艺术》PDF版本&…...

基于注解配置的AOP
注解方式AOP基本使用 Spring的AOP也提供了注解方式配置,使用相应的注解代替之前的xml配置。 xml配置: <aop:config> <!-- 配置切入点 目的是指定哪些方法增强--><aop:pointcut id"myPointCut1" expression"execu…...

【Qt】QStackedWidget、QRadioButton、QPushButton及布局实现程序首页自动展示功能
效果 在程序启动后,有时不会进入到工作页面,会进入到产品展示页面。 动画如下: 首页展示 页面操作 当不点击时,一秒自动刷新一次;当点击时,会自动跳转到对应页面;点击上一页、下一页、及跳转页…...

探索 V8 引擎的内部:深入理解 JavaScript 执行的本质
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

单片机学习11——矩阵键盘
矩阵键盘: 这个矩阵键盘可以接到P0、P1、P2、P3都是可以的。 使用矩阵键盘是能节省单片机的IO口。 P3.0 P3.1 P3.2 P3.3 称之为行号。 P3.4 P3.5 P3.6 P3.7 称之为列号。 矩阵键盘检测原理: 1、检查是否有键按下; 2、键的抖动处理…...

Java游戏 王者荣耀
GameFrame类 所需图片: package 王者荣耀;import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.ArrayList…...

接口测试场景:怎么实现登录之后,需要进行昵称修改?
在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明: 以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的to…...
石油化工专业MR仿真情景教学演练
首先,MR混合现实情景实训教学系统为学生提供了一个高度仿真的学习环境。在这个环境中,学生可以亲自操作设备,进行模拟实验,甚至可以体验到工业事故的模拟情景,从而更好地理解工艺流程的复杂性和安全性。这种沉浸式的学…...

Docker配置Halo搭建个人博客-快速入门
Docker配置Halo搭建个人博客-快速入门 1 官方文档2 安装Halo2.1 创建Halo主目录2.2 远程下载配置文件2.3 编辑配置文件2.4 拉取最新镜像2.6 查看容器2.7 开放服务器的防火墙 3 运行3.1 运行项目3.2 停止项目 4 常见问题4.1 没有权限4.2 ommand netstart not found, did you mea…...
禁止编辑的PPT幻灯片,如何有效保护文件安全?
【幻灯片解密、去除密码、找回密码指南】 具体步骤如下:第一步百度搜索【密码帝官网】,第二步在用户中心上传需要解密的文件即可。 你是否有遇到过打开一个PPT文件却发现它被去除了密码无法编辑的情况?别担心,将为您提供最简单的解…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...

elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...