Jenkins容器使用宿主机Docker(五)

news2025/2/27 14:01:50

DevOps之安装和配置 Jenkins (一)
DevOps 之 CI/CD入门操作 (二)
Sonar Qube介绍和安装(三)
Harbor镜像仓库介绍&安装 (四)
Jenkins容器使用宿主机Docker(五)
Jenkins流水线初体验(六)

一、Jenkins制作自定义镜像并推送到Harbor镜像仓库

上一篇章讲到了Harbor镜像仓库的使用,构建镜像和发布镜像到Harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可

1.1 Jenkins容器使用宿主机Docker

  • 设置Jenkins容器使用宿主机Docker
  • 设置宿主机docker.sock权限
sudo chown root:root /var/run/docker.sock
sudo chmod o+rw /var/run/docker.sock

在这里插入图片描述
在这里插入图片描述

1.2 添加数据卷

cd /usr/local/docker/jenkins_docker
vi docker-compose.yml
version: "3.1"
services:
 jenkins:
  image: jenkins/jenkins
  container_name: jenkins
  ports:
   - 8080:8080
   - 50000:50000
  volumes:
   - ./data/:/var/jenkins_home/
   - /var/run/docker.sock:/var/run/docker.sock
   - /usr/bin/docker:/usr/bin/docker
   - /etc/docker/daemon.json:/etc/docker/daemon.json

在这里插入图片描述
在这里插入图片描述
重启Jenkins容器

docker-compose up -d

在这里插入图片描述

1.3 添加构建操作

docker build -t mytest:$tag docker/
docker login -u admin -p Harbor12345 192.168.43.141:80
docker tag mytest:$tag 192.168.43.141:80/repo/mytest:$tag
docker push 192.168.43.141:80/repo/mytest:$tag

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 测试

  • 1.4.1 修改代码并推送到GitLab

在这里插入图片描述

  • GitLab新建tag:v4.0.0

在这里插入图片描述
在这里插入图片描述

  • Jenkins 构建 v4.0.0

在这里插入图片描述
在这里插入图片描述

  • 查看Harbor镜像仓库
    mytest:v4.0.0镜像已经成功推送到仓库

在这里插入图片描述

二、目标服务器拉取镜像

部署项目需要通过Publish Over SSH插件,让目标服务器执行命令。为了方便一次性实现拉取镜像和启
动的命令,推荐采用脚本文件的方式。
添加脚本文件到目标服务器,再通过Publish Over SSH插件让目标服务器执行脚本即可

2.1 编写脚本文件,添加到目标服务器

vi deploy.sh

在这里插入图片描述

脚本 deploy.sh

harbor_url=$1
harbor_project_name=$2
project_name=$3
tag=$4
port=$5

imageName=$harbor_url/$harbor_project_name/$project_name:$tag

containerId=`docker ps -a | grep ${project_name} | awk '{print $1}'`
if [ "$containerId" != "" ] ; then
	docker stop $containerId
	docker rm $containerId
	echo "Delete Container Success"
fi

imageId=`docker images | grep ${project_name} | awk '{print $3}'`
if [ "$imageId" != "" ] ; then
	docker rmi -f $imageId
	echo "Delete Image Success"
fi

docker login -u DevOps -p P@ssw0rd $harbor_url
docker pull $imageName
docker run -d -p $port:$port --name $project_name $imageName
echo "Start Container Success"
echo $project_name

2.2 设置权限为可执行

chmod a+x deploy.sh

2.3 测试脚本

在这里插入图片描述

2.4 将脚本移到PATH目录下

在这里插入图片描述

ls
echo $PATH
mv deploy.sh /usr/bin

2.5 Jenkins配置

增加构建后操作

deploy.sh 192.168.43.141:80 repo ${JOB_NAME} $tag 8081

在这里插入图片描述
在这里插入图片描述

2.6 构建

  • 构建前将镜像mytest:v4.0.0删除

在这里插入图片描述

  • 构建后

在这里插入图片描述

  • 浏览器访问

在这里插入图片描述

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

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

相关文章

【大模型】LLaMA-2:Open Foundation and Fine-Tuned Chat Models, July. 2023.

论文:LLaMA-2:Open Foundation and Fine-Tuned Chat Models, July. 2023. 链接:https://arxiv.org/abs/2307.09288 Introduction 创新点 7B - 70B 预训练 微调 开源Llama 2 和Llama 2-Chat,针对对话用例进行了优化Motivation A…

Jmeter直连数据库,jar包下载

运行报错信息:jmeter连接mysql异常:Cannot load JDBC driver class ‘com.mysql.jdbc.Driver‘ 1、下载地址: https://mvnrepository.com/artifact/mysql/mysql-connector-java/ 2、将下载好的jar包 (我的是:mysql-con…

安全攻击平台介绍

目录 XSS攻击平台 Attack API BeEF XSS-Proxy 漏洞平台 cnvd 阿里云漏洞库 攻防演练平台 XCTF 攻防平台 零日靶场(0ops) 安恒靶场(赛宁安全) XSS攻击平台 XSS Payload如此强大,为了使用方便,有安…

webpack处理图片资源

过去在Webpack4时,我们处理图片资源通过file-loader和url-loader进行处理。 现在Webpack5已经将两个Loader功能内置到Webpack里了,我们只需要简单配置即可处理图片资源。 1. 配置 //webpack.config.js const path require("path");module.…

QT数据库(四):QSqlRelationalTableModel 类

关系数据库概念 例如下列departments、majors、studInfo 这 3 个数据表之间存在关系。 主键与外键 标记“**”的是主键字段,标记“*”的是外键字段。主键字段是一个数据表中表示记录唯一性的字段,例如 studInfo 数据表中的 studID 字段。外键字段是与其…

深入C语言文件操作:从库函数到系统调用

引言 文件操作是编程中不可或缺的一部分,尤其在C语言中,文件操作不仅是处理数据的基本手段,也是连接程序与外部世界的重要桥梁。C语言提供了丰富的库函数来处理文件,如 fopen、fclose、fread、fwrite 等。然而,这些库…

【HarmonyOS NEXT】ArkTs数据类型解析与使用

1. 背景 为什么设计ArkTS? 1.1 其它语言有版权【Java?Kotlin?】以及历史问题【Java内存?】 1.2 生态,可复用前端生态的三方库,兼容JS/TS语言生态ArkTs解决了JS/TS中的哪些问题? 2.1 **程序健壮性…

H5 scss 移动端的样式适配

在移动端样式的scss文件中,出现了这些变量 env() 与 constant() 设置安全区域,是css里IOS11新增的属性,webkit的css函数,用于设定安全区域与边界的距离,有4个预定义变量: safe-area-inset-left: 安全区域距…

YOLOv5与ViT目标检测中的热力图应用教程

文章目录 前言一、热力图介绍1、热力图应用说明2、热力图代码整体思路3、实验效果二、heatmap类解读三、GradCAM、GradCAMPlusPlus, GradCAM, XGradCAM, EigenCAM, HiResCAM, LayerCAM等类源码解读1、GradCAM类源码2、BaseCAM类源码解读1、BaseCAM源码2、forward函数源码解读ou…

组织病理学图像的再识别|文献速递-生成式模型与transformer在医学影像中的应用

Title 题目 Re-identification from histopathology images 组织病理学图像的再识别 01 文献速递介绍 在光学显微镜下评估苏木精和伊红(H&E)染色切片是肿瘤病理诊断的标准程序。随着全切片扫描仪的出现,能够将玻璃切片数字化为所谓的…

如何用重构解锁高效 Vue 开发之路

文章目录 摘要引言什么是代码重构为什么要减少重复逻辑Vue 示例代码问题场景初始代码的痛点重构后的通用组件 TaskList.vue详细说明 重用通用组件详细说明 模拟数据与运行结果 QA环节总结参考资料 摘要 代码重构是改善代码质量的重要手段,特别是在减少重复逻辑方面…

用户发送请求后服务端i/o工作过程

华子目录 服务端i/o介绍磁盘i/o机械磁盘的寻道时间、旋转延迟和数据传输时间常见的机械磁盘平均寻道时间值常见磁盘的平均延迟时间每秒最大IOPS的计算方法 网络i/o网络I/O处理过程磁盘和网络i/o 一次完整的请求在内部的执行过程 服务端i/o介绍 i/o在计算机中指Input/Output&am…

QT c++ 测控系统 一套报警规则(上)

本文适用于pc based的测控系统的上位机,定义了一套报警规则。 由5个部分组成:自定义4布尔类、在全局文件定义工位错误结构体和结构体变量,其它地方给此变量的当前值成员赋值,报警线程类、数据库保存类、弹框类。 1.自定义4布尔类…

概率论得学习和整理24:EXCEL的各种图形,统计图形

目录 0 EXCEL的各种图形,统计图形 1 统计图形 / 直方图 / 其实叫 频度图 hist最合适(用原始数据直接作图) 1.1 什么是频度图 1.2 如何创建频度图,一般是只选中1列数据(1个数组) 1.3 如何修改频度图的宽度 1.4 hist图的一个特…

项目二十三:电阻测量(需要简单的外围检测电路,将电阻转换为电压)测量100,1k,4.7k,10k,20k的电阻阻值,由数码管显示。要求测试误差 <10%

资料查找: 01 方案选择 使用单片机测量电阻有多种方法,以下是一些常见的方法及其原理: 串联分压法(ADC) 原理:根据串联电路的分压原理,通过测量已知电阻和待测电阻上的电压,计算出…

Linux中 vim 常用命令大全详细讲解

文章目录 前言一、Vim 基本操作 🕹️1.1 打开或创建1.2 退出编辑1.3 模式切换 二、Vim 光标移动命令 ↕️2.1 基本移动2.2 行内移动2.3. 单词移动2.4. 页面移动2.5. 行跳转 三、Vim 文本编辑命令 📋3.1 插入和删除3.2 复制、剪切与粘贴3.3 替换与修改 四…

ARM架构服务器国产麒麟V10安装nginx

目前ARM架构服务器越来越多的出现在我们的工作中,尤其大数据时代的需要,服务器操作系统linux国产化进程的推进。本人已经编写了很多ARM架构下安装java环境,安装mysql,安装redis等等的文档。现在我们演示一下国产麒麟V10安装nginx-…

【SQL】语句练习

1. 更新 1.1单表更新 例1: 所有薪水低于30000的员工薪水增加10% SQL命令&#xff1a; update employee set salarysalary*1.1 where salary < 30000; 1.2多表更新 例1: 将下图两表张三的语文成绩从95修改为80 SQL命令&#xff1a; update exam set score80 where subjec…

【开源】使用环信UIKit for uniapp 做一个IM即时聊天应用

环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开发的一款即时通讯 UI 组件库&#xff0c;提供各种组件实现会话列表、聊天界面、联系人列表及后续界面等功能&#xff0c;帮助开发者根据实际业务需求快速搭建包含 UI 界面的即时通讯应用。 本文教大家使用环信 uniapp UIKit 快…