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
数据库。 看看我的部署文件可能对您有所帮助。