Jenkins

Jenkins安装配置

Jenkins介绍

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。

Jenkins安装

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificaterpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
执行yum命令安装:
yum -y install jenkins

配置:

使用vi编辑器修改配置文件:
vi /etc/sysconfig/jenkins
修改的内容为:
# 修改为对应的目标用户, 这里使用的是root
$JENKINS_USER="root"
# 服务监听端口
JENKINS_PORT="16060"
更改目录的权限:
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
修改服务配置后重启服务:
systemctl restart jenkins
如果启动失败,出现以下报错信息:
Starting Jenkins bash: /usr/bin/java: No such file or directory
需要创建Java环境的软连接:
ln -s /usr/local/jdk/bin/java /usr/bin/java
Jenkins管理后台初始化地址:
http://ip:16060/
如果需要输入管理员密码,查看/var/lib/jenkins/secrets/initialAdminPassword
cat /var/lib/jenkins/secrets/initialAdminPassword

插件的安装:

根据项目的需要安装即可,介绍docker 和git插件的安装

Git安装配置

yum 安装方式:yum -y install git
安装之后检查git版本:# git version

Docker安装配置

更新软件包版本: yum -y update
卸载旧版本:      yum -y remove docker  docker-common docker-selinux docker-engine
安装软件依赖包:    yum install -y yum-utils device-mapper-persistent-data lvm2
设置yum源为阿里云: sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装后查看docker版本:  docker -v
启动docker:   systemctl start docker
设置开机启动:  systemctl enable docker

Jenkins工具配置:需要配置jdk、maven、DOCKER目录,指定虚拟机上安装的路径即可

xxl-job分布式任务&seata部署& Java工程的准备

xxl-job部署

下载xxjob的源码后,把数据库文件导入到服务器中,改xxl-job-admin中的application.properties文件,修改端口号为任意不冲突的端口即可,执行打包命令,把jar包上传到服务器中,建议放置根目录的xxl-job目录下(统一管理)
在xxl-job目录下创建Dockerfile文件,内容如下

#使用Java版本
FROM java:8u111
# 复制文件
COPY xxl-job-admin-2.2.0-SNAPSHOT.jar /app.jar
# 执行该命令
CMD java -jar /app.jar
向外暴露端口
EXPOSE 暴漏端口号

执行docker构建镜像命令:

 docker build -t xxl-job-admin:2.2.0 .

创建容器

docker run -di --name=xxl-job-admin -p 端口号:端口号 xxl-job-admin:2.2.0

部署成功后通过 ip:端口号/xxl-job-amdin访问出现以下界面即可

seata 部署

拉取seata镜像

docker pull seataio/seata-server:1.3.0

创建容器并设置开机自启动

docker run --name seata --restart=always -p 8091:8091 -e SEATA_IP=ip地址 -e SEATA_PORT=8091 -d seataio/seata-server:1.3.0

java 工程环境准备

在工程下面每一个微服务启动类中创建一个Dockerfile文件,方便创建docker镜像
脚本为以下内容

# 设置JAVA版本
FROM java:8
# 指定存储卷, 任何向/tmp写入的信息都不会记录到容器存储层
VOLUME /tmp
# 拷贝运行JAR包
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
# 设置JVM运行参数, 这里限定下内存大小,减少开销
ENV JAVA_OPTS="\
-server \
-Xms256m \
-Xmx512m \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=512m"
# 入口点, 执行JAVA运行命令
ENTRYPOINT java ${JAVA_OPTS}  -jar /app.jar

服务集成Docker配置

基础依赖打包配置

1、新创建一个item,起名为xxxx


2、配置当前的工程
描述项目,描述自己的项目即可

源码管理
选中git,输入git的仓库地址(前提条件,需要把代码上传到git云仓库中,这里使用的码云),最后输入码云的用户名和密码,如果云仓库是公共的,不需要输入用户名和密码,如果没有配置Credentials,可以选择添加,然后输入用户名密码即可

maven管理
​maven版本:就是在jenkins中配置的maven
目标:输入maven的命令 clean install -Dmaven.test.skip=true 跳过测试安装


创建完成以后可以在主页上看到创建好的item,然后点击Build Now

点击进去之后,可以查看构建的日志信息,构建过程中,会不断的输出日志信息,如果有报错信息控制台也会输出,jenkins会先从git仓库中拉取代码,然后执行maven的install命令,把代码安装到本地仓库中,最终如果是success则为构建成功(

微服务打包配置

新建item和基础依赖打包一致。配置maven时需要配置maven命令:clean install -Dmaven.test.skip=true -P prod dockerfile:build -f xxx/pom.xml(项目名称和服务名称一定要小写,Jenkins的bug,否则构建失败)
-Dmaven.test.skip=true 跳过测试
-P prod 指定环境为生成环境
dockerfile:build 启动dockerfile插件构建容器
-f xxx/pom.xml 指定需要构建的文件(必须是pom)

执行以下shell命令

if [ -n  "$(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )" ]then#删除之前的容器docker rm -f $(docker ps -a -f  name=$JOB_NAME  --format '{{.ID}}' )
fi# 清理镜像
docker image prune -f # 启动docker服务
docker run -d --net=host  --name $JOB_NAME docker_storage/$JOB_NAME


这里不是只单纯的启动服务, 因为考虑到每次构建, 都会产生镜像, 所以要先做检查清理, 然后再启动服务
到这里就创建完毕了
启动项目Build Now

  • 首先从git中拉取代码
  • 编译打包项目
  • 构建镜像
  • 创建容器
  • 删除多余的镜像
    可以从服务器中查看镜像
    容器也已创建完毕并已经启动

结束语

到这里就结束了,废话一下,之前老师一直告诉我们不要总是一直坐在电脑面前,晚上可以跑个步、锻炼身体,在适当的时候选择安静的环境中看一本书,当时没怎么在意,现在很认同他们当时的观点。我是小白,如果你也是小白,咱们交流交流学习经验。如果您是行业大牛,路过一定要给我留下点您宝贵的指导意见,对您感激不尽。❤️

SpringCloud持续集成项目部署相关推荐

  1. 『中级篇』docker之CI/CD持续集成-项目生成镜像(76)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『中级篇』docker之CI/CD持续集成-项目生成镜像(76) 开始想用docker registry做私有镜像库,后来放弃 ...

  2. .NET Core 从 Github到 Nuget 持续集成、部署

    一.前言 Nuget 作为一个.NET研发人员,我想你都不会陌生,他为我们提供非常方便的程序包管理,不管是版本,还是包的依赖都能轻松应对,可以说是我们的好助手.而 Nuget 除了官方nuget.or ...

  3. 基于 CODING 的 Spring Boot 持续集成项目

    本文作者:CODING 用户 - 廖石荣 持续集成的概念 持续集成(Continuous integration,简称 CI)是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少 ...

  4. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第4天

    目录 主题 路线图 Jenkins 先决条件 使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD 创建新的管道作业 添加参数 添加管道脚本 运 ...

  5. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第3天

    目录 主题 路线图 先决条件 Azure Active Directory和服务主体 创建一个Azure Active Directory和服务主体 将应用程序集成到角色 将Jenkins与Azure ...

  6. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第2天

    目录 主题 路线图 先决条件 将ASP.NET Core应用发布到Azure应用服务 在Azure上配置Jenkins 在Azure上创建Jenkins服务器 解锁Jenkins 结论 主题 本系列文 ...

  7. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第1天

    目录 介绍 路线图 DevOps 持续集成 持续部署 Jenkins Azure Web App服务 主题 先决条件 安装Jenkins 先决条件 下载并安装 Jenkins插件 让它运行 安装自定义 ...

  8. 应该如何做好持续集成和部署?

    应该如何做好持续集成和部署? 前言 持续集成和部署是每一个互联网开发团队都必须要面对的问题,由于业务和技术团队快速增长,技术积累较弱,所以一个高效的,可持续的运维规范尤为重要. 高效可持续的运维环境需 ...

  9. 敏捷开发,持续集成/交付/部署, DevOps总结

    文章目录 敏捷开发入门教程 一.迭代开发 二.增量开发 三.敏捷开发的好处 3.1 早期交付 3.2 降低风险 四.如何进行每一次迭代 五.敏捷开发的价值观 六.十二条原则 七.参考链接 持续集成/交 ...

最新文章

  1. 对于数据库进行设计在PHP,关于数据库表的设计
  2. 阿里达摩院正式加入5G巨头仗:瞄准新基建,成立XG实验室,要与华为战一战
  3. LibSvm python 调试实验
  4. 中国增材制造市场投资前景与发展投资战略调研报告2022-2028年版
  5. Java享元模式之字符串享元
  6. 过滤html标签的代码
  7. Axure - 破解
  8. How SAP Fiori application is embedded in web client ui
  9. python-函数的参数-位置参数-关键词参数
  10. 开发分布式网络监控分析之前端ajax展现那些事
  11. videojs如何获取请求消息_消息队列中,如何保证消息的顺序性?
  12. vs2019轻松完成python项目创建
  13. 从零开始学androidBroadCast广播.四十五.
  14. 原生WebView长截图 和 Tencent x5webview截长图
  15. 弹窗插件zDialog使用教程
  16. 相位一致性的基本原理及应用问题
  17. 2020-03-28
  18. E3 1200 系列服务器,至强E3-1200 v2增加图形核心_服务器评测与技术-中关村在线
  19. 吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)
  20. python身份证号码共18位_18位身份证校验

热门文章

  1. Python爬虫之爬取图片
  2. Java实现第八届蓝桥杯青蛙跳杯子
  3. 亚马逊( Amazon Advertising API)API 广告授权 接口调用
  4. NeHe OpenGL第二十九课:Blt函数
  5. 5.22 阿博茨科技 面试总结
  6. 共用体的使用_C++
  7. ios客户端请求数据加密方式
  8. iOS客户端学习-Prefix.pch文件
  9. AssetBundle文件结构浅析
  10. rust建造一键升级_rust一键升级指令 | 手游网游页游攻略大全