(jenkins系列四)jenkins发布项目到docker
准备环境
本次先假定jenkins与要发布的服务器在同一台,实际生产环境中,有可能测试环境和生产环境分别部署有jenkins,也有可能一台jenkins用于多套环境、多台服务器的发布,这次先专注于docker的部署,jenkins不需要跨网络操作
自制JDK镜像
先自制一个jdk镜像,上传到自己的阿里云(阿里云免费提供镜像仓库服务),后面基于这个镜像构建自己的应用
新建目录/home/dockerfile,新建Dockerfile文件,并将JDK的压缩包拷贝到该目录下:
编写Dockerfile:
FROM centos:7 MAINTAINER yiyuankafei ADD jdk-8u11-linux-x64.tar.gz /usr/local/ ENV JAVA_HOME /usr/local/jdk1.8.0_11 ENV PATH $PATH:$JAVA_HOME/bin
构建镜像:
docker build -t yiyuankafei-jdk:8 .
不要漏掉最后的点“.”
查看镜像列表:docker images
新建镜像tag,镜像ID为刚才构建的镜像ID
docker tag [镜像ID] registry.cn-shanghai.aliyuncs.com/yiyuankafei-jdk/jdk:8
登录阿里云镜像仓库:
docker login --username=byf124633367 registry.cn-shanghai.aliyuncs.com
推送到阿里云镜像仓库:
docker push registry.cn-shanghai.aliyuncs.com/yiyuankafei-jdk/jdk:8
可以到镜像控制台看一下是否推送成功(这步忘了截图,下图的仓库和版本后来切换过)
新建springboot项目DEMO
新建spring-boot项目,提供一个任意的测试接口,具体流程跳过
使用maven插件来构建镜像,在pom中添加如下配置
这段配置的作用类似于通过dockerfile构建镜像,比如<baseImage>类似dockerfile的FROM
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <configuration> <imageName>registry.cn-shanghai.aliyuncs.com/yiyuankafei/test-docker-jenkins:latest</imageName> <baseImage>registry.cn-shanghai.aliyuncs.com/yiyuankafei-jdk/jdk:8</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <comPress>true</comPress> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
测试接口:
@RestController @RequestMapping("/test") public class TestController { @RequestMapping("/t1") public String test1(String name) { System.out.println("test1"); return "test1: " + name; } }
jenkins新建项目
配置参数
配置源码地址
构建前操作
构建后执行shell
mvn package docker:build docker run -d -i --name=testDockerJenkins -p 9099:9099 registry.cn-shanghai.aliyuncs.com/yiyuankafei/test-docker-jenkins:latest
构建项目
查看镜像和容器
可以看到容器已经运行起来了(后来切换了阿里云镜像仓库,所以shanghai改成了hangzhou,这个不影响流程,关注主要步骤即可)
测试一下接口:
- [手把手系列之] Jenkins+Docker自动化部署vue项目
- Jenkins系列之——第四章 Jenkins编译一个Web项目并远程发布到Tomcat
- jenkins+docker+nodejs项目的自动部署环境(案例)
- ASP.NET Core 系列视频完结,新项目实战课程发布。
- Spring Boot---(9)SpringBoot项目发布到docker的tomcat容器
- jenkins远程发布tomcat项目
- jenkins发布项目到远程主机上,配置两台linux如何使用SSH免密码登录
- jdk+maven+svn+Tomcat+Jenkins项目部署发布
- .Net Core自动化部署系列(二):使用Jenkins打造镜像发布流水线
- .NetCore 使用Jenkins发布多环境下的项目并适配数据库EFCore数据库更新及替换配置文件
- Jenkins+docker实现应用发布
- hjr-linux:项目部署与svn搭建和jenkins自动化发布
- Jenkins maven项目构建与部署(执行脚本发布)
- Android进阶系列-发布项目到Jcenter
- Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)
- jenkins构建Maven项目远程发布到服务器
- 解读ASP.NET 5 & MVC6系列(3):项目发布与部署
- docker swarm实现java项目的发布/滚动更新/回滚/镜像管理
- docker基础:私库系列:再探Harbor:(7) 使用restapi对项目进行增删改查
- Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD