[每周一更]-(第74期):Docker-compose 部署Jenkins容器-英文版及错误纠错

news/2024/7/5 4:15:39

在这里插入图片描述

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:latest
    container_name: jenkins1
    ports:
      - "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/localtime
    restart: 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、最终效果图:

在这里插入图片描述


http://lihuaxi.xjx100.cn/news/1827188.html

相关文章

拒绝烂尾,Arm二期持续更新中,Arm二期Roadmap

感谢大家的支持&#xff0c;感谢大家一直以来的鼓励。更感谢大家的包容。近期又更新了很多课程&#xff0c;这次都是总线和协议相关的&#xff0c;适合软件同学基础扫盲。 硬件的同学请自行考虑&#xff0c;相信你们研究的比我这深。同时呢也在规划一些直播讨论交流课&#xff…

【T3】畅捷通T3登录时操作日期的日历中日期与星期对应关系错误。

【问题描述】 畅捷通T3软件登录的时候&#xff0c; 在选择操作日期位置&#xff0c;点击出日历后发现&#xff1a; 几月几日和星期几是对不上的。但是查看电脑系统右下角日期&#xff0c;是正确的。 例如&#xff1a;2023年11月24日应该是星期五&#xff0c;这里反而是星期三。…

npm,yarn,pnpm 清理缓存

目录 1&#xff0c;为什么要清理缓存1&#xff0c;缓存文件太多&#xff0c;影响系统运行2&#xff0c;不同源会有区别 2&#xff0c;命令2.1&#xff0c;npm2.2&#xff0c;yarn2.3&#xff0c;pnpm 1&#xff0c;为什么要清理缓存 1&#xff0c;缓存文件太多&#xff0c;影响…

【ChatGLM2-6B】Docker下部署及微调

【ChatGLM2-6B】小白入门及Docker下部署 一、简介1、ChatGLM2是什么2、组成部分3、相关地址 二、基于Docker安装部署1、前提2、CentOS7安装NVIDIA显卡驱动1&#xff09;查看服务器版本及显卡信息2&#xff09;相关依赖安装3&#xff09;显卡驱动安装 2、 CentOS7安装NVIDIA-Doc…

无需API开发,有赞小程序集成广告推广系统,提升品牌曝光

无需API开发&#xff0c;实现有赞小程序与其他系统的连接 有赞小程序作为一个多功能的电子商务解决方案&#xff0c;为商家提供了无需复杂API开发就可以实现系统连接和集成的便捷途径。通过有赞小程序&#xff0c;商家可以轻松实现与各种系统的数据同步和应用互联&#xff0c;…

详解Java中的异常体系机构(throw,throws,try catch,finally)

目录 一.异常的概念 二.异常的体系结构 三.异常的处理 异常处理思路 LBYL&#xff1a;Look Before You Leap EAFP: Its Easier to Ask Forgiveness than Permission 异常抛出throw 异常的捕获 提醒声明throws try-catch捕获处理 finally的作用 四.自定义异常类 一.异…

解决LocalDateTime传输前端为时间的数组

问题出现如下&#xff1a; 问题出现原因&#xff1a; 默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS。使用这个解析时就会打印出数组。 解决方法&#xff1a; 我在全文搜索处理方法总结如下&#xff1a; 1.前端自定义函数来书写 ,cols: [[ //表头{…

2311d,模板上的推导类型

原文 我正在试实现替代的基础库,来避免模板/mixin/static/traits代码,只为了:使得更容易解析"智能感知"代码. 我需要"泛型",但D没有泛型:我按"最简单"方式使用模板. 即: interface IIterable(T) {bool empty();void popFront();T front(); } II…