**本篇主要针对jenkins + docker 项目构建配置 **
jenkins 的安装配置移步到:

docker 构建 springboot jar为镜像容器不使用jenkins请移步到:

一、在springboot项目配置

1、创建docker构建镜像脚本

  • src/main 下创建 docker 文件夹
  • 在创建Dockerfile文件
  • 在把代码提交至svn/git
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD springboot_docker_demo.jar springboot_docker_demo.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/springboot_docker_demo.jar"]

FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
ADD ,拷贝文件并且重命名
ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

2、pom.xml 添加打包命令

<!-- 自定义maven 打包后的名称-->
              <finalName>springboot_docker_demo</finalName>

	          <!-- maven 打包成 Docker 镜像   -->
			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>1.0.0</version>
				<configuration>
					<imageName>${docker.image.prefix}</imageName>
					<dockerDirectory>src/main/docker</dockerDirectory>
					<resources>
						<resource>
							<targetPath>/</targetPath>
							<directory>${project.build.directory}</directory>
							<include>${project.build.finalName}.jar</include>
						</resource>
					</resources>
				</configuration>
			</plugin>
			
			<!-- maven打包跳过测试  -->
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>

二、jenkins 配置

1、拉取git/svn代码

jenkins docker部署springcloud jenkins docker springboot_maven


2、maven 打包跳过测试

jenkins docker部署springcloud jenkins docker springboot_maven_02

-Dmaven.test.skip=true

3、上传docker 打包镜像脚本

添加构建后操作

  • 上传文件默认顶级目录为在jenkins工作空间,
  • **表示在工作空间下找到Dockerfile文件
  • 去除前缀看第一次输出值linux目录结构在自己去除把,目的是让jar,和脚本在同级目录

jenkins docker部署springcloud jenkins docker springboot_maven_03

**\Dockerfile

docker images
docker ps -a

4、发送 jar

添加一个ssh文件发送 或 命令

jenkins docker部署springcloud jenkins docker springboot_maven_04


springboot的maven打包后的 jar

和上面一个意思

jenkins docker部署springcloud jenkins docker springboot_jar_05


5、docker命令构建项目

在添加一个ssh文件发送 或 命令

jenkins docker部署springcloud jenkins docker springboot_docker_06


命令一栏

cd /
docker rm -f wsldy
docker rmi -f wsldy.jar:latest

cd /usr/local/work/jenkins
docker build -t wsldy.jar .
docker run --name  wsldy -p 8888:8080 -t -d wsldy.jar

修正时间、启动命令添加 -v /etc/localtime:/etc/localtime

docker run -v /etc/localtime:/etc/localtime --name  wsldy -p 8888:8080 -t -d wsldy.jar

6、构建启动命令详细说明

表示为根目录
cd /
删除正在运行的容器(上次构建的同项目)
docker rm -f wsldy
删除镜像(上次构建的同项目)
docker rmi -f wsldy.jar:latest

进入jar 和 Dockerfile 文件的存放目录
cd /usr/local/work/jenkins
构建docker镜像
docker build -t wsldy.jar .
后台启动镜像,不会打印启动日志
docker run --name  wsldy -p 8888:8080 -t -d wsldy.jar

然后点击构建项目就ok了呢

喜欢就个赞呗!…