前言
Docker技术发展为当前流行的微服务提供了更加便利的环境,使用SpringBoot+Docker部署和发布应用,其实也是一件比较简单的事情。当前,前提是得有Docker的基础。
源码在文末
文末有项目源码的github地址
构建一个SpringBoot项目
本人最早的一篇文章,就是教大家如何使用Spring Initialise工具,快速的创建一个SpringBoot项目,如果还不懂的,可以翻一下本人的第一篇文章,这里就不多讲了。下面贴一下主要的文件内容:
pom文件的大部分内容这里就不贴了,主要贴关键的内容,主要的就是maven-docker的打包插件:
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</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>
<!-- Docker maven plugin -->
这里的docker.image.prefix值为:
<docker.image.prefix>happy</docker.image.prefix>
dockerDirectory配置了Dockerfile的路径为:src/main/docker,所以,我们需要在src/main目录下,创建docker目录,然后创建Dockerfile文件。整体的目录结构如下:
Dockerfile
Dockerfile文件内容如下:
FROM openjdk
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
到这里,已经完成了SpringBoot+Docker的配置了,接下来就是打包部署了。
添加测试接口
为了方便测试,可以添加一个GET请求的接口,如下:
@SpringBootApplication
@RestController
public class SpringbootDockerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDockerApplication.class, args);
}
@GetMapping(value = "/test")
public Object test() {
return "Hello SpringBoot with Docker!";
}
}
maven打包
使用maven构建Dockerfile的命令如下:(先把maven和Docker都设置为国内的源,否则需要build比较长的时间)
mvn package docker:build
在springboot-docker目录根路径下执行此命令即可。
需要本地安装了Docker才能够打包成功,否则会报错。关于Docker的安装,Linux的用户可以根据我之前的文章进行安装,其他系统的用户可以自行搜索安装即可。推荐使用Linux。
比如本人,Docker是安装在Linux虚拟机上的,直接把springboot-docker目录拷贝到Linux机器上:
执行打包命令,输入如下:
看到BUILD SUCCESS即表示构建成功了,这时候就可以通过docker images命令,查看我们构建的镜像了:
镜像构建完之后,我们还可以把它推到Docker的仓库上。这里就不展开来讲了。
使用该镜像创建容器
命令如下:
docker run -it -d --name springboot -p 8080:8080 happy/springboot-docker
这里创建并且启动一个容器,命名为springboot,映射端口为8080:8080
可以通过如下命令查看启动日志:
docker logs springboot
访问测试接口
源码下载
源码我放在github上,欢迎大家关注:
https://github.com/Happy4Java/hello-springboot
关注公众号领资料
搜索公众号【Happyjava】,回复【电子书】和【视频】,即可获取大量优质电子书和大数据、kafka、nginx、MySQL等视频资料
原创声明
本文发布于掘金号【Happyjava】。Happy的掘金地址:https://juejin.im/user/5cc2895df265da03a630ddca,Happy的个人博客:http://blog.happyjava.cn。欢迎转载,但须保留此段声明。