我正在'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)