使用码头构建码头图像 - 我应该何时构建?

时间:2016-06-22 08:14:42

标签: java maven docker build

我正在进行“码头化”工作。我想用jetty运行的java Web应用程序(https://github.com/kermitt2/grobid)。

这里是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 clone构建)。 例如,我无法使用docker HUB构建系统运行构建。

什么是优惠方法?构建映像时构建maven项目,还是在构建完成后运行docker?

1 个答案:

答案 0 :(得分:1)

我认为您正在创建的泊坞窗图像是用于制作的。

如果您创建一个获取源并构建战争的图像,则必须嵌入:

  • JDK
  • 的Maven
  • 您的来源

这些都是完全没用的,并且在你的图像中占用了大量的空间,绝对没有。

所以,是的,IMO你只是将战争添加到你的码头图像中,你不是从内部构建的。

我认为你不应该在你的maven进程中构建你的docker镜像,它是两个独立的进程,你可以通过一些更高级别的脚本(或jenkins管道)自动化