我正在进行“码头化”工作。我想用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?
答案 0 :(得分:1)
我认为您正在创建的泊坞窗图像是用于制作的。
如果您创建一个获取源并构建战争的图像,则必须嵌入:
这些都是完全没用的,并且在你的图像中占用了大量的空间,绝对没有。
所以,是的,IMO你只是将战争添加到你的码头图像中,你不是从内部构建的。
我认为你不应该在你的maven进程中构建你的docker镜像,它是两个独立的进程,你可以通过一些更高级别的脚本(或jenkins管道)自动化