docker搭建CI/CD环境配置过程中的常见问题
一、Jenkins
1、pull镜像问题
docker pull jenkins/jenkins:lts
Using default tag: latest
Trying to pull repository docker.io/library/centos ...
Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fcentos%3Apull&service=registry.docker.io: net/http: TLS handshake timeout
解决办法:添加dns或修改国内源,根本原因是网络访问不到
2、镜像启动报错:(镜像没有启动对应端口,状态Exited (1)已退出)
[root@iv-yd0kl60qgwwuxjsckauv docker]# docker logs jenkins
INSTALL WARNING: User: missing rw permissions on JENKINS_HOME: /var/jenkins_home
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
解决方案
要解决这个问题,你需要调整宿主机上/data/jenkins_home/目录的权限,使得容器内的用户(UID为1000)有权读写该目录。可以通过以下命令来实现:
sudo chown -R 1000:1000 /data/jenkins_home/
这个命令会将/data/jenkins_home/目录及其子目录的所有者和群组都更改为UID和GID为1000的用户和组。这样做是基于jenkins/jenkins:lts镜像中,jenkins服务运行在一个UID为1000的用户上的事实。
完成这个权限调整后,你可以重新启动jenkins容器来应用更改:
删除当前的jenkins容器(如果它没有在运行,这一步仍然是必要的,以确保重新启动时可以应用新的权限设置):
docker rm jenkins -f
重新创建并启动jenkins容器:
docker run -d -p 8080:8080 --name jenkins -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
这样应该能解决权限问题,让jenkins容器能够正常启动并运行。如果在此过程中遇到其他问题,可以通过docker logs jenkins来检查jenkins容器的日志,以获取更多信息。
3、网络访问地址后报错:
该网页无法正常运作14.xx.xx.2 目前无法处理此请求。
HTTP ERROR 502
重启docker
systemctl restart docker
重新删除jenkins容器后再次启动,在此之前需要在云服务页面的安全组放开对应端口
4、安装插件报错:

原因:安装的jenkins版本不是最新的,下载插件时有问题
解决方案:
docker stop jenkins
docker rm jenkins -f
docker rmi jenkins
docker pull jenkins/jenkins:latest
#拉取最新版本的jenkins镜像,重新启动容器即可
docker run -di --name jenkins -p 8080:8080 -v /data/jenkins_home/:/var/jenkins_home jenkins/jenkins:latest
jenkins页面操作:配置ssh账户信息、配置ssh
二、Gitlab
1、安装gitlab:
docker run --detach \--hostname 14.103.xx.xx \--publish 8443:443 --publish 8081:80 --publish 2222:22 \--name gitlab \--restart always \--volume $PWD/config:/etc/gitlab \--volume $PWD/logs:/var/log/gitlab \--volume $PWD/data:/var/opt/gitlab \gitlab/gitlab-ce:latest
说明:–detach就是常用的-d参数,作用是让docker容器在后台运行
gitlab安装之后默认会有一个root密码,需要登陆进去修改密码,首次登陆24小时后失效。
#在文件中查询root密码:
/etc/gitlab/initial_root_password
相关文章:
docker搭建CI/CD环境配置过程中的常见问题
一、Jenkins 1、pull镜像问题 docker pull jenkins/jenkins:lts Using default tag: latest Trying to pull repository docker.io/library/centos ... Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/token?scoperepo…...
实验四 微信小程序智能手机互联网程序设计(微信程序方向)实验报告
请编写一个用户登录界面,提示输入用户名和密码进行登录; 代码 index.wxml <view class"user"> <form bindreset""> <view>用户名:</view><input type"text"name""/>…...
WPF —— 关键帧动画
wpf动画类型 1<类型>Animation这些动画称为from/to/by动画或者叫基本动画,他们会在起始值或者结束值进行动画处理,常用的例如 <DoubleAnimation> 2 <类型>AnimationUsingKeyFrames: 关键帧动画,功能要比from/to这些动画功…...
Taro + vue3 小程序封装标题组件
分为没有跳转页面的title组件和 有跳转页面的title组件 我们可以把这个封装成一个组件 直接上代码 <template><div class"fixed-title-container"><div class"box"><div class"icon" v-if"isShow" click"…...
babyAGI(6)-babyCoder源码阅读2任务描述部分
废话不多说,我们直接看task的prompt 这里需要注意的是,每个openai_call的temperature都不相同,这也是开发程序时需要调整和关注的一点 1. 初始化代码任务agent 作为babycoder的第一个angent,整个prompt编写的十分值得学习 整个p…...
生成式语言模型预训练阶段验证方式与微调阶段验证方式
生成式语言模型,如GPT-3、BERT等,在预训练和微调阶段都需要进行验证以确保模型性能。下面分别介绍这两个阶段的验证方式: 预训练阶段的验证: 预训练阶段通常使用大量未标注的文本数据来训练模型,以学习语言的一般特性。…...
flink on yarn
前言 Apache Flink,作为大数据处理领域的璀璨明星,以其独特的流处理和批处理一体化模型,成为众多企业和开发者的首选。它不仅能够在处理无界数据流时展现出卓越的实时性能,还能在有界数据批处理上达到高效稳定的效果。本文将简要…...
用TOMCAT部署web项目教程
文章目录 引言I 使用webapps文件夹II 利用server.xmlIII 自定义配置文件IV 预备知识4.1项目的一般结构4.2 contex标签4.3 IDE部署4.4 配置Tomcat服务引言 在开发阶段,一般使用IDE如MyEclipse来部署web项目,不要忘记手动部署的三种方式。 I 使用webapps文件夹 将项目文件夹…...
bash例子-source进程替换、alias不生效处理
#1. source 例子, 进程替换source <(echo alias zls"ls") #上一行 中 echo替换为cat,则得到如下行, 好处是 cat不用处理引号转义问题,而echo则必须处理引号转义问题#写一段复杂脚本,且 不处理引号转义问题 &#x…...
rabbitmq死信交换机,死信队列使用
背景 对于核心业务需要保证消息必须正常消费,就必须考虑消费失败的场景,rabbitmq提供了以下三种消费失败处理机制 直接reject,丢弃消息(默认)返回nack,消息重新入队列将失败消息投递到指定的交换机 对于核…...
gitlab备份与恢复
1.1.1 查看系统版本和软件版本 cat /etc/debian_version cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 1.1.2 数据备份 打开/etc/gitlab/gitlab.rb配置文件,查看一个和备份相关的配置项 sudo vim /etc/gitlab/gitlab.rb gitlab_rails[backup_path] &q…...
HBase详解(1)
HBase 简介 概述 HBase是Yahoo!公司开发的后来贡献给了Apache的一套开源的、分布式的、可扩展的、基于Hadoop的非关系型数据库(Non-Relational Database),因此HBase并不支持SQL(几乎所有的非关系型数据库都不支持SQL),而是提供了一套单独的命令和API操…...
深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度
看这篇前请先把我上一篇了解一下:深入理解数据结构第一弹——二叉树(1)——堆-CSDN博客 前言: 相信很多学习数据结构的人,都会遇到一种情况,就是明明最一开始学习就学习了时间复杂度,但是在后期…...
视频汇聚/安防监控/EasyCVR平台播放器EasyPlayer更新:新增【性能面板】
视频汇聚/安防监控/视频存储平台EasyCVR基于云边端架构,可以在复杂的网络环境中快速、灵活部署,平台视频能力丰富,可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云…...
【教程】Flutter 应用混淆
在移动应用开发中,保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具,帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆,并提供了相关的操作步骤和注意事项。 📝 摘要 本…...
STM32中C编程引入C++程序
C具备类的创建思想很实用于实际场景多相似性的框架搭建;同种类型或相似类型的C的优势明显因此进行相互嵌套使用 需要在C中使用C类的话,你可以通过C的“extern "C"”语法来实现。这允许你在C代码中使用C的链接方式,而在C代码中使用…...
MySQL DBA 需要了解一下 InnoDB Online DDL 算法更新
在 MySQL 8.0.12 中,我们引入了一种新的 DDL 算法,该算法在更改表的定义时不会阻塞表。第一个即时操作是在表格末尾添加一列,这是来自腾讯游戏的贡献。 然后在 MySQL 8.0.29 中,我们添加了在表中任意位置添加(或删除&…...
多态--下
文章目录 概念多态如何实现的指向谁调谁?例子分析 含有虚函数类的大小是多少?虚函数地址虚表地址多继承的子类的大小怎么计算?练习题虚函数和虚继承 概念 优先使用组合、而不是继承; 继承会破坏父类的封装、因为子类也可以调用到父类的函数;…...
备考ICA----Istio实验16---HTTP流量授权
备考ICA----Istio实验16—HTTP流量授权 1. 环境准备 kubectl apply -f istio/samples/bookinfo/platform/kube/bookinfo.yaml kubectl apply -f istio/samples/bookinfo/networking/bookinfo-gateway.yaml访问测试 curl -I http://192.168.126.220/productpage2. 开启mtls …...
STM32-02基于HAL库(CubeMX+MDK+Proteus)GPIO输出案例(LED流水灯)
文章目录 一、功能需求分析二、Proteus绘制电路原理图三、STMCubeMX 配置引脚及模式,生成代码四、MDK打开生成项目,编写HAL库的GPIO输出代码五、运行仿真程序,调试代码 一、功能需求分析 在完成开发环境搭建之后,开始使用STM32GP…...
突破限制:跨设备使用三星笔记的开源技术方案
突破限制:跨设备使用三星笔记的开源技术方案 【免费下载链接】galaxybook_mask This script will allow you to mimic your windows pc as a Galaxy Book laptop, this is usually used to bypass Samsung Notes 项目地址: https://gitcode.com/gh_mirrors/ga/gal…...
力扣链表高频题:两两交换节点 + K个一组翻转链表(保姆级思路+满分代码)
链表翻转、节点交换是力扣的高频必考题型,也是面试手撕链表的常客。今天一次性攻克两道经典题:24. 两两交换链表中的节点和25. K 个一组翻转链表,从思路拆解到代码实现,一步步讲透,新手也能轻松拿捏。 这两道题一脉相承…...
MOS管技术详解:从基础到工程应用
MOS管技术详解:从基础原理到工程应用1. MOS管基础概念与分类1.1 场效应管基本类型场效应管(FET)主要分为两大类型:结型场效应管(JFET):Junction Field-Effect Transistor金属氧化物半导体场效应管(MOSFET):Metal-Oxide-Semiconduc…...
实战指南:如何用Mask R-CNN在iSAID数据集上提升航空影像分割效果(附调参技巧)
航空影像实例分割实战:Mask R-CNN在iSAID数据集上的调优策略 航空影像分析正逐渐成为城市规划、灾害监测和国防安全等领域的关键技术。与常规自然图像不同,这类影像通常包含大量密集分布的小目标,且目标尺度变化极大——从几个像素的小型车辆…...
扶梯安全开关硬件抽象库:轻量级嵌入式状态识别方案
1. 项目概述EscalatorSwitch 是一个面向自动扶梯安全控制场景的轻量级嵌入式硬件抽象库,其核心定位并非通用IO驱动,而是针对电梯/扶梯行业特有的“扶梯运行状态切换开关”(Escalator Switch)这一专用机电装置提供标准化、可复用的…...
嵌入式硬件工程师如何转型管理者
嵌入式硬件工程师的职业发展路径:从技术专家到管理者的转型指南1. 职业发展概述1.1 技术与管理双轨发展在嵌入式硬件工程领域,职业发展通常呈现两条路径:技术专家路线和管理路线。对于希望转向管理岗位的工程师,需要理解技术能力与…...
【数据结构与算法】第5篇:线性表(一):顺序表(ArrayList)的实现与应用
一、什么是顺序表顺序表是最简单的一种线性结构。用一段地址连续的存储单元依次存储数据元素。你可以把它理解为一个可以自动扩容的数组。C语言的原生数组长度是固定的,不够用的时候只能重新申请更大的数组,把数据搬过去。顺序表封装了这个过程ÿ…...
告别手动组帧!用libmodbus库5分钟搞定Modbus RTU设备数据读取(C语言实战)
5分钟极速上手:用libmodbus高效读取工业设备数据的C语言实践指南 在工业自动化现场,当我们需要快速对接一台陌生的Modbus RTU设备时,传统的手动组帧方式往往让开发者陷入繁琐的字节操作和CRC校验计算中。我曾亲眼见过一位工程师花费三天时间调…...
ArcGIS JS API调用天地图WMTS服务实战:从GetCapabilities解析到完整代码实现
ArcGIS JS API调用天地图WMTS服务全流程解析 在WebGIS开发中,将第三方地图服务无缝集成到ArcGIS生态系统中是常见需求。天地图作为国内权威的地理信息服务,其WMTS(Web Map Tile Service)接口的调用尤为关键。本文将深入剖析从服务…...
从实验室到生产线:LeRobot如何用AI重新定义机器人控制范式?
从实验室到生产线:LeRobot如何用AI重新定义机器人控制范式? 【免费下载链接】lerobot 🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot …...
