前后端分离项目知识汇总(整合Jenkins)

308 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天,点击查看活动详情

这里用的是写的一个小demo示例,通过Jenkins部署的

要想熟练掌握Jenkins的使用,需要对docker很熟悉!!!

所以我们不捉急,慢慢来学吧

整合Jenkins

代码上传到码云

省略...

环境配置

代码中需要包含Dockerfile文件

image-20220524095938488

在项目pom文件中指定打包类型,包含build部分内容

image-20220524100009338

安装jenkins环境

在centos环境安装以下环境

  • java
  • maven
  • git
  • docker

其中maven的setttings文件最好改成国内源,不然构建的会很慢!

配置环境变量

image-20220524100308095

部署jenkins

[root@mysql jenkins]# ll
total 92716
-rw-r--r-- 1 root root 94928325 May 20 07:19 jenkins.war
​
[root@mysql jenkins]# nohup java -jar  /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out &
[1] 5570
​
[root@mysql jenkins]# nohup: ignoring input and redirecting stderr to stdout

登录

image-20220524101545453

下面这一步不太好用,退出之后还是没有updates文件夹,可以在网上下载好插件,然后把插件复制到plugins再打开就有这些功能了

image-20220524101609591

jdk环境配置

image-20220524101903702

git配置

image-20220524102010071

maven配置

image-20220524102023279

保持配置即可....

构建作业

构建思路:

  • 建立任务
  • 选择仓库代码
  • 选择执行作业的方式

1、建立任务

image-20220524102201990

2、选择仓库代码

image-20220524102354875

3、选择执行作业的方式

image-20220524102537271

代码如下:

#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./infrastructure/eureka_server
service_name="eureka-server"
service_prot=8761
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
docker logs  $service_name

第一次可能有些慢,之后就会很快

image-20220521142847507

image-20220524101515900

[root@mysql jenkins]# docker ps -a
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
96d5a7108ef9   demojenkins2   "java -jar /demojenk…"   2 minutes ago   Up 2 minutes             demojenkins2
​
​

部署成功啦!!!

image-20220521143008672