与dockerbuild立docker形象 – 我应该什么时候build造?

我正在'dockerizing'一个我想用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镜像完美地工作,但是它需要在之前构build应用程序(它不能从新鲜的git克隆中构build)。 例如,我不能用Docker HUB构build系统来运行构build。

什么是可取的方法? 在构build映像的同时构buildMaven项目,或者在构build完成后运行Docker?

我假设你正在创build的docker图像是用于生产的。

如果您创build了一个可以获取源代码并构build战争的图片,则需要embedded:

  • JDK
  • Maven的
  • 你的来源

这些都是完全没有用的,并且在图像中占据了很大的空间。

所以是的,国际海事组织,你只是把战争添加到你的docker形象,你不从内部build立。

我认为你不应该在你的maven进程中build立你的docker镜像,这是两个独立的进程,你可以使用一些更高级别的脚本(或者jenkinspipe道)