目录:
(1)构建作业(server-gateway)
(2)构建service_product模块
(3)演示添加新代码
(4)学会使用linux快照
(1)构建作业(server-gateway)
pom加上一个打包的插件,指定打包的名称
点击创建一个新任务
进入创建项目类型选择页面
我的视图中找新建任务
server-gateway
填好信息点击“确认”
配置“General”
配置“源码管理”
填写源码的git地址(gmall-parent项目git地址)
点击添加jenkins 添加git用户,git的用户名与密码
构建作业
注:docker.sh,其他服务都一样,只是调整以下三项配置:
cd ./server-gateway //当前目录为:gmall-parent
service_name="server-gateway" //当前服务名称:server-gateway
service_prot=80 //当前服务端口:80
选择“执行shell”
shell命令如下:
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./server-gateway
service_name="server-gateway"
service_port=80
#查看镜像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_port:$service_port $service_name
#查看启动日志
#docker logs -f $service_name
service-product:
#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./service/service-product
service_name="service-product"
service_port=8206
#查看镜像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_port:$service_port $service_name
#查看启动日志
#docker logs -f $service_name
注:--net=host docker的4种网络模式之一
host模式,使用--net=host指定。
使用宿主机的ip和端口
保存上面的构建作业
参考文档:https://www.cnblogs.com/gispathfinder/p/5871043.html
构建
构建作业之后,就可以执行构建过程了。
执行构建过程
镜像就有了
容器也正常运行了
构建结构
第一列是 "上次构建状态显示",是一个圆形图标,一般分为四种:
蓝色:构建成功;
黄色:不确定,可能构建成功,但包含错误;
红色:构建失败;
灰色:项目从未构建过,或者被禁用;
如上显示蓝色,表示构建成功。
注意:手动触发构建的时间与自动定时构建的时间互不影响。
查看控制台输出
日志内容:
(2)构建service_product模块
引入打包插件
注:其他模块构建方式一样,可选择“复制”上一个模块构建,修改配置即可,如图
复制之后,会把server-gateway的构建步骤拿过来,进行修改即可
修改shell
这个时候就可以访问service-product里面的接口了:可以直接访问内部的接口
通过前面的网关80访问这个 service-product内部接口,网关进行了过滤
通过前面的网关访问这个 service-product接口
(3)演示添加新代码
(4)学会使用linux快照
通过不备份快照,来防止我们把环境搞错了,搞错后直接回复到正常的快照
快照管理:
2024-09-22