【Spring Cloud】一、 Docker 服务并结合 Jenkins 自动构建

一、 Docker 服务并结合 Jenkins 自动构建

将项目转为 docker

先在 Docker Hub 注册个账号,需要有个空间

1. maven配置

pom.xml

<properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>xznh</docker.image.prefix>
</properties>



<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>dockerfile-maven-plugin</artifactId>
	<version>1.4.10</version>
	<configuration>
        <username>******</username>
        <password>******</password>
	    <repository>${docker.image.prefix}/${project.artifactId}</repository>
	    <buildArgs>
		    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
	    </buildArgs>
	</configuration>
</plugin>

dockerfile-maven-plugin 插件会自动读取本机的 docker 用户认证信息:

参考官方文档:https://github.com/spotify/dockerfile-maven/blob/master/docs/authentication.md

因为在 docker 中的 Jenkins 运行,故直接把账号密码写进配置文件

这里的 docker.image.prefix 是需要配置的,这里配置的是在 docker Hub注册的账号名

2. Jenkins 配置

此时在 Jenkins 中配置 maven 中执行命令:

clean package dockerfile:build dockerfile:push

即可实现构建打包

不过此时 Jenkins 运行构建项目时候也需要 docker环境,故引主服务器 docker 环境进行 Jenkins 链接:

在运行 Docker 中 运行Jenkins 的时候,进行配置:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -p 8080:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins

此时对主环境的 /var/run/docker.sock 也需要申请 root 权限

chmod 777 /var/run/docker.sock

参考, 此时才可以正常打包,并能发布到 Docker Hub。

3. 远程执行项目更新

项目打包完毕,需要通知远端服务器来更新,此时因为已经发布到了Docker Hub,在其他服务器只需要通知更新项目即可

Jenkins 增加插件 SSH,并在凭据里加服务器的账号密码,并在 系统管理 - 系统设置 - SSH remote hosts 中

填好相关信息。这里Credentials就是刚才加的凭据:

在项目配置中 构建 操作 中增加 Execute shell script on remote host using ssh 选项:

这里可以写远程服务器执行的一些命令。

这里的三行命令,参考

docker rm $(docker stop $(docker ps -a -q --filter="name=rarecord"))
docker pull xznh/rarecord
docker run -d  -e "SPRING_PROFILES_ACTIVE=prod" -p 7777:7777 --name rarecord xznh/rarecord -t 

分别是:1. 删除之前的该镜像容器 2. 拉最新的镜像信息 3. 执行最新容器

包括项目的启动更新,都是以这种方式来进行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值