如何在Docker容器中热部署Java EE应用程序

前端之家收集整理的这篇文章主要介绍了如何在Docker容器中热部署Java EE应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在寻找将Java EE应用程序热部署到Docker容器中的可能性.

我发现最有趣的内容是通过“卷”共享主机和容器之间的tomcat目录的可能性.但它还不是一个热门的部署.

参考:https://groups.google.com/forum/#!topic/docker-user/b_4NRn9sLBQ

有关如何达到它的任何建议?

最佳答案
我知道这个问题有点老了,但我想分享一下如何用Docker中的tomee服务器开发java EE应用程序.

准备Docker镜像

首先要做的是启用日志记录.我使用官方基本映像并将日志重定向到stdout以便在我的控制台上查看它:

# you can change the base image of course
FROM tomee:8-jre-1.7.5-jaxrs
RUN ln -s /dev/stdout /usr/local/tomee/logs/catalina.out 
RUN echo '

添加日志可能看起来不是什么大不了的事,但确实如此.启用此功能后,您可以立即查看部署的成功(或失败).
丑陋的xml片段实际上非常重要.它使名为tomee的用户能够使用所有重要权限来部署应用程序.

您可以使用普通的docker工具构建图像:

docker build -t tomee-dev .

准备开发环境

我使用标准的maven目录布局.这是一个例子:

pom.xml
src
 |
 - main
    |
    - java
    |   |
    |   - boundary
    |        |
    |        - TestResource.java
    - webapp
        |
        - WEB-INF
            |
            - web.xml

这些文件内容可以在这个答案的底部找到.

像这样启动容器:

docker run -it --rm -p 8080:8080 tomee-dev

最后一块拼图是我们的maven配置.您可以使用tomee maven插件进行重新部署

您现在可以使用mvn clean tomcat7:deploy和mvn clean tomcat7:redeploy命令来部署/重新部署您的应用程序.

附录

这是我在示例中使用的源文件配置文件内容

的src /主/爪哇/边界/ TestResource.java

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

@Path("/")
public class TestResource {

    @GET
    @Path("test")
    public Response test1() {
        return Response.ok("this is a test").build();
    }
}

的src /主/ JAVA / web应用/ WEB-INF / web.xml中

的pom.xml

原文链接:https://www.f2er.com/docker/436806.html

猜你在找的Docker相关文章