Linux+Docker+Gitee+Jenkins自动化部署.NET Core服务

目录

一、安装Jenkins

1、跟新yum包

2、查询镜像

3、拉取镜像

4、创建Jenkins工作目录,并将容器内目录挂载到此目录上

5、启动Jenkins容器

二、Jenkins配置

1、Jenkins安装gitee码云插件

2、创建私人令牌

3、Jenkins添加全局凭据

4、系统配置

三、构建任务

方式一

方式二



一、安装Jenkins

1、跟新yum包

sudo yum update #确保yum包更新到最新

service network restart #重启网络

2、查询镜像

docker search jenkins

3、拉取镜像

docker pull jenkins/jenkins #拉取镜像

4、创建Jenkins工作目录,并将容器内目录挂载到此目录上

目的是:Jenkins会将从git或者码云仓库中拉取到的项目代码拉取到此目录中,进行编译打包发布

777代表了对文件或目录的最高级别的权限

sudo mkdir -p /home/jenkins_home #在home目录下创建jenkins_home目录

sudo mkdir -p /home/jenkins_settings #在home目录下创建jenkins_settings目录

sudo chmod 777 /homt/jenkins_home #设置权限

sudo chmod 777 /home/jenkins_settings #设置权限

5、启动Jenkins容器

使用以下命令启动Jenkins容器,并将宿主机上的相关目录挂载到容器内的相应位置:

-v $(which docker):/usr/bin/docker

-v /var/run/docker.sock:/var/run/docker.sock 这两句是表示支持docker

sudo docker run -d -u root \

-p 9096:8080 \

-p 50001:50000 \

-v /home/jenkins_home:/var/jenkins_home \

-v /home/jenkins_settings:/var/settings \

-v /etc/localtime:/etc/localtime \

-v $(which docker):/usr/bin/docker \

-v /var/run/docker.sock:/var/run/docker.sock \

--restart=always \

--name=jenkins2 \

jenkins/jenkins:latest

6、

在浏览器中打开:192.168.43.10:9095 进入Jenkins页面 192.168.43.10是我虚拟机静态IP地址,9095是当前安装的jenkins端口

二、Jenkins配置

1、Jenkins安装gitee码云插件

选择可用插件,输入gitee,点击下载

gitee插件安装完毕

添加Docker插件

2、创建私人令牌

去码云网站创建一个私人令牌:https://gitee.com/personal_access_tokens

点击生成新令牌:

点击生成令牌或者修改后,就会弹出如下弹窗:复制你的私人令牌:

3、Jenkins添加全局凭据

1、打开你的Jenkins页面 系统管理->凭据

2、添加一个Gitee API令牌 类型的全局凭据

3、再添加一个用户名加密码类型的凭据

4、系统配置

往下拉找到 Gitee配置:

点应用保存

三、构建任务

方式一

shell命令:

home/jenkins_home是我jenkins的工作目录(当然你也可以在安装jenkins的时候指定其他目录为你的jenkins工作目录),安装完jenkins后会在工作目录下面自动给我们创建了一个工作空间目录,叫workspace。

当我们在jenkins中新建一个任务:比如任务名称叫:slxt-master,那么它就会在workspace目录下给我们创建一个slxt-master的文件夹,用于存放我们从slxt-master任务中配置的git仓库地址拉取下来的源代码。

cs 复制代码
#!/bin/sh
#### 切换到项目文件夹下####
cd /home/jenkins_home/workspace/slxt-master
#### 检查是否存在悬空容器,如果存在则清理悬空容器,下面这段代码请谨慎使用,用于删除所有未使用的容器,所以这我注释掉了####
#### docker container prune -f  ####
#### 检查是否存在虚悬镜像,如果存在则清理虚悬镜像####
echo ---------------Clear-Images...------------------
clearImagesList=$(docker images -f "dangling=true" -q)
if [ ! -n "$clearImagesList" ]; then
echo "no images need  clean up."
else
docker rmi $(docker images -f "dangling=true" -q)
echo "clear success."
fi
#### 搜索容器名称以mynet开头的容器,然后停止并删除###
echo ---------------停止并删除容器开始...------------------
docker stop $(docker ps -a --filter name=mynet* --format "{{.Names}}")  
docker rm $(docker ps -a --filter name=mynet* --format "{{.Names}}")
#### 构建镜像###
echo ---------------构建镜像开始...------------------
docker build -t jenkinstestimage .
#### 根据镜像运行容器###
echo ---------------运行容器开始...------------------
docker run -d -p 8050:80 --name=mynet6test8050 jenkinstestimage
docker run -d -p 8051:80 --name=mynet6test8051 jenkinstestimage
docker run -d -p 8052:80 --name=mynet6test8052 jenkinstestimage

方式二

相关推荐
物理与数学9 小时前
linux 内存分布
linux·linux内核
东城绝神9 小时前
《Linux运维总结:基于ARM64+X86_64架构使用docker-compose一键离线部署MySQL8.0.43 NDB Cluster容器版集群》
linux·运维·mysql·架构·高可用·ndb cluster
creator_Li10 小时前
即时通讯项目--(1)环境搭建
linux·运维·ubuntu
Ka1Yan10 小时前
Docker:基本概念与快速入门
运维·docker·容器
Mr'liu11 小时前
MongoDB 7.0 副本集高可用部署
linux·mongodb
文静小土豆11 小时前
Rocky Linux 二进制 安装K8S-1.35.0高可用集群
linux·运维·kubernetes
暮云星影12 小时前
二、linux系统 应用开发:整体Pipeline流程
linux·arm开发
糠帅傅蓝烧牛肉面13 小时前
单实例多MCP聚合服务:两种实现方案深度对比
前端·docker·ai
weixin_4307509313 小时前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统
4032407313 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu