改进docker容器内的java web app部署过程

时间:2016-03-04 21:58:54

标签: java tomcat docker

假设我有一堆组装的war,每个大约80-100 MB。我已经基于Tomcat创建了所有这些图像:8-jre8官方图像,基本上每个图像只包含tomcat及其依赖项和我的war文件。

通常在将其中一个应用程序部署到服务器(tomcat)时,大约需要20-80秒,具体取决于部署的应用程序的大小以及启动时初始化的数量。

在docker容器中部署此类war时,部署过程会延长几倍,例如,通常在20秒内部署的应用程序在docker容器内需要大约60秒。

我的Dockerfile是一种基本的

FROM tomcat:8.0-jre8
ENV spring.profiles.active=dev
ADD foo.war /usr/local/tomcat/webapps/
COPY bar.properties /root/
CMD ["catalina.sh", "run"]

我已尝试为每个Web应用程序运行单独的tomcat服务器,并将所有这些服务器部署到单个tomcat服务器,但问题仍然存在。
有没有办法改善docker容器内Web应用程序的部署时间?

1 个答案:

答案 0 :(得分:0)

您使用的是docker-machine吗?如果是这样,将文件发送到docker引擎需要一些时间,因此您无法做到这一点。出于开发目的,您可以创建另一个Dockerfile使用卷来同步主机和容器之间的文件,这样您就不需要在每次决定部署时重建。