Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

时间:2023-12-11 18:52:32

Jenkins发布docker应用与发布java应用配置基本一致,需要配置Dockerfile及构建的步骤,步骤如下:

1、jenkins主机构建应用为jar包

2、jenkins主机把生产的jar包构建为docekr镜像

3、jenkins主机把构建好的镜像推送至镜像仓库

4、目标主机去镜像仓库拉取镜像

5、目标主机以拉取的最新镜像启动新的服务

注意:需要在jenkins以及目标主机部署docker服务,关于docker的部署网上问的一堆,请自行百度。

1、新建项目

跟据之前创建任务一样,创建maven项目

Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

2、项目配置

  a)源码管理:指定代码仓库位置,以及分支

  b)build

  Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

  c)Post Steps

  指定构建docker镜像的命令

  Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

  说明:这里是说把打包好的jar包复制到我们创建好的构建eureka镜像的目录

  build.sh 是一个脚本,用来构建镜像,并把镜像推送至指定镜像仓库,脚本内容如下: 

[tchua@centos01 one-eureka]$ vim build.sh
#!/bin/bash docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/xxx/uat-images" ## 镜像仓库地址 TAG="eureka" #rm
docker rmi ${docker_hub}:$TAG  ## 删除上一次构建镜像 #login
docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陆镜像仓库,${USER} ${PASSWD}修改为自己具体的用户名密码 #build
docker build -t ${docker_hub}:$TAG .        ## 构建新镜像,. 是指DOckerfile在当前目录下 #push
docker push ${docker_hub}:$TAG            ## 推送镜像至镜像仓库

镜像构建需要一个Dockerfile,Dockerfile文件内容:

FROM registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/software:java1.

MAINTAINER vanje@vanje.com.cn

ADD eureka-1.0..jar /apps/

EXPOSE 

ENTRYPOINT ["java","-jar","/apps/eureka-1.0.0.jar"]

  d)构建后操作

Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)

  说明:这里是远程登陆服务器执行服务启动脚本。

  脚本内容如下:

#!/bin/bash

docker_hub="registry-vpc.cn-hangzhou.aliyuncs.com/vanje_one/uat-images"  ## 镜像仓库地址

TAG="eureka"
#rm
docker rm -f eureka                        ## 删除现有容器
docker rmi ${docker_hub}:${TAG}                 ## 删除现有容器镜像 #login
docker login -u ${USER} -p ${PASSWD} ${docker_hub} ## 登陆镜像仓库,${USER} ${PASSWD}修改为自己具体的用户名密码 docker pull ${docker_hub}:${TAG}               ## 拉去镜像 docker run --name eureka -p : -d ${docker_hub}:${TAG} ## 启动指定镜像服务

3、发布

以上保存点击发布后,查看控制台日志可以看到对应的构建信息:

Jenkins+maven+gitlab自动化部署之docker发布sprint boot项目(七)