jenkins系列-03.业务代码部署jenkins

写好的demo springboot 项目地址:
springboot项目demo

在这里插入图片描述
要想使用gitee(而不是同样使用docker搭建起来的gitlab,因为太耗内存了),那么还需要配置插件:
在这里插入图片描述
配置gitee: jenkins中的系统配置:
在这里插入图片描述
证书令牌
Gitee API V5 的私人令牌(获取地址 https://gitee.com/profile/personal_access_tokens)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
回到jenkins配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后保存,应用:
在这里插入图片描述
开始配置流水线Jenkins
在这里插入图片描述
在这里插入图片描述
设置git:
在这里插入图片描述
在这里插入图片描述
构建第一步:从仓库中拉取代码
在这里插入图片描述
在这里插入图片描述
去验证:代码文件是不是到了jenkins内部:
在这里插入图片描述
在这里插入图片描述
第2步:使用maven构建,生成xxx.jar文件:
在这里插入图片描述
clean package -DskipTests
在这里插入图片描述
在这里插入图片描述
再次构建:时间会比较长
在这里插入图片描述
期间出错了:然后在jenkins容器内部执行:后来发现是宿主机是mac m1, docker jenkins也是arm, 但是放
里面的jdk是x86架构,所以替换arm的jdk后,没问题了:

在这里插入图片描述
编写docker相关脚本:在上面springboot项目下创建docker目录,里面有docker相关文件:这里Dockerfile内容红框留坑了:
在这里插入图片描述
构建后生成.jar文件,然后推送到远程服务器,并打成镜像:
在这里插入图片描述
说明:
cd /root/test/docker 因为把maven build好的 target/*.jar 和 docker目录复制到了远程服务器,所以有docker目录

mv …/target/*.jar ./ 把 target下的mytest.jar 移到到当前 docker目录中来(此目录中还有 Dockerfile和 docker-compose.yml文件)

docker-compose down 把之前过程中构建起来的项目先停掉
docker-compose up -d --build 重新构建启动
docker image prune -f 把虚悬镜像删除掉

操作失败了:maven build成功,但是推送远程服务器失败!
在这里插入图片描述
这是因为我刚在远程服务器上使用了另外一个快照(含有k8s,自然也有docker,因为项目要跑在docker上)
,此快照上没有/root/test目录,所以重新创建出来即可。
在这里插入图片描述

再次构建:日志如下:
在这里插入图片描述
去"远程"服务器上查看:(本地vmware启动的一台服务器)
在这里插入图片描述
然后使用docker查看发现并没有启动此项目,原来是本服务器上没有安装docker-compose,
那就安装下:不过安装前先删除掉本机上的k8s环境,只留下docker

在这里插入图片描述
但是发现服务器是arm架构,所以重新下载:https://github.com/docker/compose/releases
在这里插入图片描述
在这里插入图片描述
然后还是发现在docker中没有启动项目:手工执行下试试:这也证明了jenkins成功不一定发版成功。。。
在这里插入图片描述
换成java:8, 还是不行,发现是时间的问题
在这里插入图片描述
在这里插入图片描述

systemctl enable chronyd.service
systemctl start chronyd.service
systemctl status chronyd.service

在这里插入图片描述
修改/etc/chrony.conf
在这里插入图片描述

 # pool 2.centos.pool.ntp.org iburst
  4 # add another two
  5 server ntp.aliyun.com iburst
  6 server ntp.ntsc.ac.cn iburst 

查看服务:
[root@node-1 docker]# chronyc sourcestats -v
在这里插入图片描述
设置时区:

timedatectl set-timezone Asia/Shanghai

然后重启vmware下的linux服务器:shutdown now
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

记得上面我说的坑吗:

failed to solve: failed to solve with frontend dockerfile.v0: failed to build LLB: mkdir /var/lib/docker/overlay2/vot0kmgzigxvkmps95m5jqsnw/merged/root/test: not a directory

再次修改Dockerfile: 修改成 /usr/local , 这个目录是容器中是存在的
在这里插入图片描述
再构建一次:
在这里插入图片描述
修改业务代码:再发版试试:
在这里插入图片描述
通过jenkins发版后:
在这里插入图片描述
FYI:以后每次因为时间不同步的问题,那就连接服务器后 用 shutdown now重启下服务器
然后再用jenkins发版

———附录:一个完整的/成功的构建日志如下所示—————

Started by user root

Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/springboot-demo
The recommended git tool is: NONE
No credentials specified
 > git rev-parse --resolve-git-dir /var/jenkins_home/workspace/springboot-demo/.git # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://gitee.com/jelex/jenkins_test # timeout=10
Fetching upstream changes from https://gitee.com/jelex/jenkins_test
 > git --version # timeout=10
 > git --version # 'git version 2.30.2'
 > git fetch --tags --force --progress -- https://gitee.com/jelex/jenkins_test +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
Checking out Revision d273cf8dc7515543d9aefac6815ac1efae07fbdf (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f d273cf8dc7515543d9aefac6815ac1efae07fbdf # timeout=10
Commit message: "业务change"
 > git rev-list --no-walk 214f60536807a14b29cecae3220f5d769927e5d1 # timeout=10
[springboot-demo] $ /var/jenkins_home/maven/bin/mvn clean package -DskipTests -DPNG_ARM_NEON_OPT=0
[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< com.jel.tech.docker:demo >----------------------
[INFO] Building demo 0.0.1-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- clean:3.1.0:clean (default-clean) @ demo ---
[INFO] Deleting /var/jenkins_home/workspace/springboot-demo/target
[INFO] 
[INFO] --- resources:3.2.0:resources (default-resources) @ demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO] 
[INFO] --- compiler:3.8.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /var/jenkins_home/workspace/springboot-demo/target/classes
[INFO] 
[INFO] --- resources:3.2.0:testResources (default-testResources) @ demo ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
[INFO] skip non existing resourceDirectory /var/jenkins_home/workspace/springboot-demo/src/test/resources
[INFO] 
[INFO] --- compiler:3.8.1:testCompile (default-testCompile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /var/jenkins_home/workspace/springboot-demo/target/test-classes
[INFO] 
[INFO] --- surefire:2.22.2:test (default-test) @ demo ---
[WARNING] Parameter 'localRepository' is deprecated core expression; Avoid use of ArtifactRepository type. If you need access to local repository, switch to '${repositorySystemSession}' expression and get LRM from it instead.
[INFO] Tests are skipped.
[INFO] 
[INFO] --- jar:3.2.2:jar (default-jar) @ demo ---
[INFO] Building jar: /var/jenkins_home/workspace/springboot-demo/target/mytest.jar
[INFO] 
[INFO] --- spring-boot:2.5.10:repackage (repackage) @ demo ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.194 s
[INFO] Finished at: 2023-03-30T11:51:12Z
[INFO] ------------------------------------------------------------------------
SSH: Connecting from host [b88e4cd5f58a]
SSH: Connecting with configuration [demo] ...
SSH: EXEC: completed after 15,262 ms
SSH: Disconnecting configuration [demo] ...
SSH: Transferred 3 file(s)
Finished: SUCCESS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值