我正在开发一个java应用程序(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当前的对接映像工作得很好,但它需要在此之前构建应用程序(它不能从新的git克隆构建)。例如,我无法使用停靠中心生成系统运行生成。
更好的办法是什么?在构建映像时构建maven项目,或者在构建成功完成后运行对接程序?
发布于 2016-06-22 08:43:00
我假设您正在创建的码头映像是用于生产的。
如果您创建了一个获取源并构建war的映像,则必须嵌入:
所有这些都是完全无用的,在你的形象中占据了大量的空间,毫无意义。
所以是的,你只会把战争添加到你的码头形象里,而不是从内部建立起来。
我认为您不应该在maven进程中构建您的坞映像,这是两个独立的进程,您可以使用一些更高级别的脚本(或jenkins管道)来自动完成这两个过程。
https://stackoverflow.com/questions/37962274
复制相似问题