Dockerizing Web应用程序(WAR文件)

我想Containerize一个Web应用程序,这是一个WAR文件,Postgres作为数据库和Tomcat作为服务器。

这将是什么程序呢?

我正在使用以下dockerfile:

FROM tomcat:8-jre8 MAINTAINER lpradel RUN echo "export JAVA_OPTS=\"-Dapp.env=staging\"" > /usr/local/tomcat/bin/setenv.sh COPY ./application.war /usr/local/tomcat/webapps/staging.war CMD ["catalina.sh", "run"] 

为每个应用程序写一个dockerfile。 例如:在tomcat服务器的docker镜像上build立一个dockerfile,拷贝warfile,在dockerfile的cmd部分启动tomcat。

对于postgres你应该可以使用现有的图像。

更新回答:

您使用的dockerfile是正确的。 这应该准备一个你想要的Web应用程序的Tomcat图像。 但是你可能想要连接那个tomcat容器和postgress容器。

更容易连接多个容器的方法是使用docker-compose文件。 要使用docker-compose,请参阅docker-compose#build 。

原始答案您可以将您的war文件安装在容器内的/usr/local/tomcat/webapps/name_of_your_file.war tomcat容器中。 这将使得war文件被tomcat容器自动部署。

顺便说一下,我正在做类似的过程,并使用mysql数据库。 看看我的部署文件可能对您有所帮助。