93 lines
2.1 KiB
Markdown
93 lines
2.1 KiB
Markdown
|
|
## 节点容器化自动构建流程
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#### 设置GitLab服务器钩子
|
|||
|
|
|
|||
|
|
运用GitLab的webhook,勾选push Event,当每次有push操作的时候,会触发webhook向Jenkins发送事件。
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#### Jenkins配置主要步骤
|
|||
|
|
|
|||
|
|
##### 新建Job项目
|
|||
|
|
|
|||
|
|
新建项目,并添加项目描述。
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
##### Git项目源配置
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
##### Maven构建配置
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
##### 清理镜像构建服务器的Jar包并重新上传
|
|||
|
|
|
|||
|
|
* 采用远程执行脚本清理镜像构建服务器的旧Jar包
|
|||
|
|
* 复制新构建成功的Jar至镜像构建服务器上
|
|||
|
|
|
|||
|
|
##### 清理旧的容器实例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
container=`docker container ls -a | grep $container_name | awk '{print $1}'`
|
|||
|
|
|
|||
|
|
echo 'stop container ' $container
|
|||
|
|
[[ -n $container ]] && docker stop $container
|
|||
|
|
|
|||
|
|
echo 'rm container ' $container
|
|||
|
|
[[ -n $container ]] && docker rm $container
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### 清理旧的镜像实例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
image=`docker images | grep $image_name | awk '{print $3}'`
|
|||
|
|
|
|||
|
|
echo 'rm image ' $image
|
|||
|
|
[[ -n $image ]] && docker rmi $image
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### 构建镜像文件
|
|||
|
|
|
|||
|
|
dockerfile如下:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 基础镜像
|
|||
|
|
FROM openjdk:8-jre
|
|||
|
|
# author
|
|||
|
|
MAINTAINER ruoyi
|
|||
|
|
|
|||
|
|
# 挂载目录
|
|||
|
|
VOLUME /home/ruoyi
|
|||
|
|
# 创建目录
|
|||
|
|
RUN mkdir -p /home/ruoyi
|
|||
|
|
# 指定路径
|
|||
|
|
WORKDIR /home/ruoyi
|
|||
|
|
# 复制jar文件到路径
|
|||
|
|
COPY ./jar/ruoyi-modules-system.jar /home/ruoyi/ruoyi-modules-system.jar
|
|||
|
|
# 启动系统服务
|
|||
|
|
ENTRYPOINT ["java","-jar","ruoyi-modules-system.jar"]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
构建镜像:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
docker build -t ruoyi-modules-system:0.0.1 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
##### 运行容器实例
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
new_image=`docker images |grep $image_name |awk '{print $3}'`
|
|||
|
|
|
|||
|
|
[[ -n $new_image ]] && docker run -d -p 19201:9201 --name $container_name $new_image
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
|