写在前言
1.本文的阅读前提是读者已经安装成功jenkins,并且已经通过做好的相关的基础配置,且可以通过jenkins发布项到到远程服务器的tomcat容器了,如果读者还没有进行到这一步建议查看笔者的另外一篇文章
【原】Jenkins持续集成环境搭建之创建java项目的job【centos6.5 java maven git 项目】
2.本文是基于spring boot ,docker, docker-compose, jenkins ,dockerfile, maven的docker-maven-plugins实现的
准备工作
请读者确定
1.自己的jenkins宿主服务器已经安装了mvn,git2
2.远程服务器已经安装好了docker,docker-compose
3.已经在内网环境下搭建好了docker- egistry私服
目录结构
pom docker-maven-plugins 配置
com.spotify
docker-maven-plugin
0.4.13
true
10.0.0.95:5000/${project.artifactId}:${project.version}
${project.basedir}/src/main/docker
/
${project.build.directory}
${project.build.finalName}.jar
dockerfile
FROM hub.c.163.com/library/java:8
VOLUME /tmp
ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
docker-compose.yml
version: '2' # 表示该docker-compose.yml文件使用的是Version 2 file format
services: # Version 2 file format的固定写法,为project定义服务。
demo1: # 指定服务名称
image: 10.0.0.95:5000/dockerdemo:0.0.1-SNAPSHOT # 指定服务所使用的镜像
ports: # 暴露端口信息
- "9001:9000"
demo2: # 指定服务名称
image: 10.0.0.95:5000/dockerdemo:0.0.1-SNAPSHOT # 指定服务所使用的镜像
ports: # 暴露端口信息
- "9002:9000"
demo3: # 指定服务名称
image: 10.0.0.95:5000/dockerdemo:0.0.1-SNAPSHOT # 指定服务所使用的镜像
ports: # 暴露端口信息
- "9003:9000"
demo4: # 指定服务名称
image: 10.0.0.95:5000/dockerdemo:0.0.1-SNAPSHOT # 指定服务所使用的镜像
ports: # 暴露端口信息
- "9004:9000"
jenkins 的配置 差异与不同
这里建议读者参照笔者的【原】Jenkins持续集成环境搭建之创建java项目的job【centos6.5 java maven git 项目】查看
package docker:build -DpushImage
target/docker/docker-compose.yml
target/docker
/javaproject/dockerdemo/
cd /usr/local/javaproject/dockerdemo
docker-compose pull
docker-compose up -d
这里有个点注意:关于 Remote directory 的路径问题,由于我在系统设置里已经做了处理,把远程的根目录设置成了 /usr/local/,所以 Remote directory 从/usr/local/下面开始写就ok