Java jar包应用镜像构建

使用 maven 镜像运行 springboot 的 jar 包的应用

目标:用 Docker 的方式搭建一个 springboot 的 jar 包的应用

前言

Spring Framework 是 Java 应用开发中应用最广泛的框架,基于 AOP 及 IOC 的思想,让它能与任何 Java 第三方框架进行非常便利的集成。同时,Maven 自从公布以来,在 Java 应用构建和管理中一直处于最重要的地位,基于 Project Object Model 的概念管理项目。所以这里,将介绍如何借助 docker 运行基于 maven 镜像的 springboot 的应用。

创建 maven web-app 的应用项目

访问 http://start.spring.io 站点,根据需要建立自己的应用。然后将应用打包为jar包。
假设已经打包好了一个 helloworld 的 springboot 的 web 应用包:app.jar

编写 Dockerfile 文件

将 Dockerfile 与 app.jar 放到同一文件夹中进行构建,完整的 Dockerfile 文件内容如下:

FROM maven:3.3.3

ENV TIME_ZONE Asia/Shanghai
RUN echo "$TIME_ZONE" > /etc/timezone

WORKDIR /app
COPY ["app.jar","/app/app.jar"]

EXPOSE 8080
CMD [ "java","-jar","app.jar"]

Dockerfile 文件说明

FROM maven:3.3.3

由于之前教程构建的是 tomcat 的基础镜像,而这里是基于 maven 的 springboot 的应用。所以镜像选择官方的 maven3.3.3 镜像。
官方维护的 Maven 镜像依赖于 Java 镜像构建,所以我们不需要使用 Java 镜像。

ENV TIME_ZONE Asia/Shanghai
RUN echo "$TIME_ZONE" > /etc/timezone

设置系统时区,保证 java 运行。

WORKDIR /app
COPY ["app.jar","/app/app.jar"]

设置容器工作目录,同时将jar包复制到容器工作目录中。

EXPOSE 8080
CMD [ "java","-jar","app.jar"]

暴露端口,运行 jar 包。

运行镜像体验

此过程与之前教程完全一致,这里不再赘述。
最后打开网页可以看到 Hello World! ,应用运行成功!

至此,我们 springboot 的 jar 包应用已经成功运行!