用码头构建码头图像 - 我什么时候应该构建



我正在'dockerizing'java Web应用程序(https://github.com/kermitt2/grobid)我想使用Jetty运行。

在这里dockerfile:

FROM jetty:9.3-jre8
ADD ./grobid-home/target/grobid-home-0.4.1-SNAPSHOT.zip /opt
RUN unzip /opt/grobid-home-0.4.1-SNAPSHOT.zip -d /opt && 
    rm /opt/grobid-home-0.4.1-SNAPSHOT.zip && 
    apt-get update && apt-get -y --no-install-recommends install libxml2
COPY ./grobid-service/target/grobid-service-0.4.1-SNAPSHOT.war  
     /var/lib/jetty/webapps/ROOT.war

当前的Docker映像运行良好,但是它需要在之前构建应用程序(不能从新鲜的git克隆中构建)。例如,我无法使用Docker Hub构建系统运行构建。

最好的方法是什么?构建图像或运行Docker在成功完成后建立Maven项目?

我假设您要创建的Docker映像是用于生产的。

如果您创建一个占据来源并建立战争的图像,则必须嵌入:

  • JDK
  • Maven
  • 您的资源

这些都是完全没有用的,并且绝对没有图像中的很多空间。

是的,是的,IMO您只会将战争添加到您的Docker映像中,您不会从内部构建。

我认为您不应该在Maven过程中构建Docker映像,这是两个单独的过程,您可以在某些更高级别的脚本(或Jenkins Pipeline)

中自动化。

最新更新