GlassFish 5.0表示Java EE 8的参考实现。我们可以使用GlassFish基本映像(例如官方oracle/glassfish
对Java EE 8应用程序进行docker化。
零依赖Java EE 8应用程序的Dockerfile
如下所示:
FROM oracle/glassfish:5.0
COPY target/application.war $GLASSFISH_HOME/glassfish/domains/domain1/autodeploy/
该映像的Docker容器将启动应用程序服务器并自动部署我们的应用程序。
application.war
被打包为一个瘦的WAR部署工件,从而加快了构建,发布和部署的时间。 WAR文件仅包含特定于应用程序的类,不包含特定于实现的JAR文件。 如果需要,在实际应用程序之前,将任何依赖项添加到基础映像的顶部。
想象一下,我们要添加Prometheus Java API:
FROM oracle/glassfish:5.0
ENV GLASSFISH_LIB=$GLASSFISH_HOME/glassfish/domains/domain1/lib/ext/
# add Prometheus Java API
COPY .../simpleclient-0.0.26.jar $GLASSFISH_LIB
COPY .../simpleclient_common-0.0.26.jar $GLASSFISH_LIB
COPY target/application.war $GLASSFISH_HOME/glassfish/domains/domain1/autodeploy/
该应用程序已经可以使用Java EE 8标准,例如JSON-B。 提供的依赖项是javax:javaee-api:8.0
与具有递增版本号的Java EE 7 API相同。
要查看使用Prometheus的完整示例,请参阅带有Java EE的Prometheus 。 通过将API版本更新为8.0,并将Docker基本映像更新为oracle/glassfish
该示例也可以在Java EE 8和GlassFish 5上运行。
乐于为Docker开发Java EE 8应用程序!
发现帖子有用吗? 订阅我的时事通讯,获取有关IT和Java的更多免费内容,技巧和窍门:
成功! 现在检查您的电子邮件以确认您的订阅。
翻译自: https://www.javacodegeeks.com/2017/11/dockerized-java-ee-8-applications-glassfish-5-0.html