项目的持续化集成和部署(二)

一、项目部署到Docker

1.1 项目部署流程

第一步:将项目上传到服务器上;
第二步:创建Docker镜像;
第三步:创建容器;
第四步:启动容器;

1.2 配置插件

第一步:配置spring-boot-maven-plugin打包插件。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

第二步:配置docker-maven-plugin插件。

<plugin>
   <groupId>com.spotify</groupId>
   <artifactId>docker-maven-plugin</artifactId>
   <version>1.0.0</version>
   <!--docker镜像相关的配置信息-->
   <configuration>
       <!--镜像名,这里用工程名-->
       <imageName>${project.artifactId}-${project.version}</imageName>
       <!--Dockerfile文件所在目录-->
       <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
       <!--TAG,这里用工程版本号-->
       <imageTags>
           <imageTag>${project.version}</imageTag>
       </imageTags>
       <imageName>${project.artifactId}:${project.version}</imageName>
       <!--构建镜像的配置信息-->
       <resources>
           <resource>
               <targetPath>/</targetPath>
               <directory>${project.build.directory}</directory>
               <include>${project.artifactId}-${project.version}.jar</include>
           </resource>
       </resources>
   </configuration>
</plugin>

1.3 编写Dockerfile

在项目src/main/resources目录下新建Dockerfile文件,文件内容如下:

FROM java:8
ENV ARTIFACTID xc-govern-center
ENV ARTIFACTVERSION 1.0-SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /$ARTIFACTID-$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar
ENTRYPOINT ["java", "-jar", "xc-govern-center.jar"]

1.4 创建镜像

将项目拷贝到服务器上后,就可以进入项目的根目录,执行以下命令。

mvn -f pom_docker.xml clean package -DskipTests docker:build

创建镜像成功后,可以通过镜像部署一个应用实例进行测试。

docker run --name 容器名称 -p 50101:50101 -idt 192.168.31.20:5000/镜像名称:镜像版本

注意:服务器上也要预先安装jdk、maven、docker工具。

二、创建持续集成任务

2.1 创建构建任务

在Jenkins主页的左侧点击“新建任务”,然后在输入框中输入任务名称。
在这里插入图片描述

2.2 配置Git

2.2.1 配置Git凭证

Git凭证用于从远程Gitlab中克隆代码。

在Jenkins主页左侧“凭据”下点击“系统”。
在这里插入图片描述
点击左侧“添加凭据”,然后录入gitlab仓库的用户名和密码,并点击保存按钮即可。
在这里插入图片描述

2.2.2 配置Git仓库

点击我的任务,进入任务配置页面。在源码管理栏目中配置Git仓库。
在这里插入图片描述

2.3 Maven构建配置

  1. 使用shell脚本停止容器、删除容器、删除镜像。
    在这里插入图片描述
    命令如下:
#!/bin/bash
result=$(docker ps | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result" != "" ]]
then
echo "stop ts-govern-center"
docker stop ts-govern-center
fi
result1=$(docker ps -a | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result1" != "" ]]
then
echo "rm ts-govern-center"
docker rm ts-govern-center
fi
result2=$(docker images | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result2" != "" ]]
then
echo "192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT"
docker rmi 192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT
fi
  1. 执行maven构建。
    在这里插入图片描述
    命令如下:
clean package -f ts-govern-center/pom_docker_registry.xml -DskipTests docker:build

3.拉取镜像、创建容器、启动容器。
在这里插入图片描述
命令如下:

docker run --name xc-govern-center -p 50101:50101 -idt 192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT
docker logs -f ts-govern-center

2.4 执行任务

进入任务页面,点击“立即构建”。
在这里插入图片描述
查看构建日志信息:
在这里插入图片描述

2.5 自动构建

2.5.1 添加公钥

Jenkins远程访问GitLab获取源代码,这里需要在GitLab配置公钥。

第一步:进入jenkins容器,生成公钥。

ssh-keygen -t rsa -C "[email protected]"
cat ~/.ssh/id_rsa.pub

第二步:将公钥文件的内容拷贝出来。

第三步:进入GitLab配置公钥。
在这里插入图片描述

2.5.2 配置webhook

GitLab中使用webhook向jenkins通知,当有代码push后将通知jenkins进行构建。

第一步:安装gitlab插件。
在这里插入图片描述

第二步:进入Jenkins设置允许匿名访问jenkins。

在“系统管理”中选择“系统配置”,进入系统配置页面。然后找到gitlab部分,将复选框取消勾选即可。
在这里插入图片描述
第三步:在Jenkins中找到通知地址,并拷贝该地址。
在这里插入图片描述
第四步:使用管理员登录jenkins,设置允许请求本地网络服务。

在主页上选择Configure GitLab。
在这里插入图片描述
选择“Settings”中的“Network”,然后展开Outbound requests,将第一个复选框选中即可。
在这里插入图片描述
第五步:设置钩子地址。通过钩子地址,jenkins就可以访问gitlab中的项目。

  1. 重新使用普通用户登录gitlab。然后进入项目主页。
  2. 选择“Settings”中的“Webhooks”,然后输入URL地址,即钩子地址。
    在这里插入图片描述

2.5.3 测试

测试步骤:

  1. 修改项目代码;
  2. 提交代码到gitlab上;
  3. 在jenkins中查看任务是否启动;

猜你喜欢

转载自blog.csdn.net/zhongliwen1981/article/details/105898252