如何为JAVA web应用程序构建Docker容器
我试图使用Docker构建一个JAVA web应用程序。我正在制作一个docker容器来部署和运行应用程序。我是初学者。因此,我从运行良好的小型pocforjava应用程序(jar)开始。我对JAVA web应用程序(war)进行了一些更改,并为该项目创建了一个Dockerfile,如下所示:如何为JAVA web应用程序构建Docker容器,java,docker,war,dockerfile,Java,Docker,War,Dockerfile,我试图使用Docker构建一个JAVA web应用程序。我正在制作一个docker容器来部署和运行应用程序。我是初学者。因此,我从运行良好的小型pocforjava应用程序(jar)开始。我对JAVA web应用程序(war)进行了一些更改,并为该项目创建了一个Dockerfile,如下所示: Dockerfile --------------------------------------------------- FROM java:8 RUN apt-ge
Dockerfile
---------------------------------------------------
FROM java:8
RUN apt-get update
RUN apt-get install -y maven
WORKDIR /code
ADD pom.xml /code/pom.xml
ADD src/main/webapp/WEB-INF/web.xml /codes/rc/main/webapp/WEB-INF/web.xml
RUN ["mvn", "dependency:resolve"]
ADD src /code/src
RUN ["mvn", "package"]
CMD ["usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-war", "target/techpoint.war"]
----------------------------------------------------
构建是成功的,但当我运行应用程序时,它说
“无法识别的选项:-war |错误:无法创建Java虚拟机|错误:发生致命异常。程序将退出”
当我将“-war”替换为“-jar”时,它说“target/myapp.war中没有主清单属性”
有人能告诉我如何使JavaWeb应用程序(war)与Docker部署过程兼容吗。这意味着要构建和运行应用程序,实际的Dockerfile(带有命令)应该是什么?您需要一个web服务器或一个应用程序服务器容器,如tomcat或Jboss(以及许多其他容器)来部署和运行基于java的web应用程序。您的“techpoint.war”文件需要复制到特定文件夹,具体取决于每个web服务器。例如,如果您正在使用Tomcat,则可以将其复制到/webapps文件夹。Tomcat将提取并部署war文件。 您可以将以下内容添加到DockerFile中
FROM tomcat:8.5.11-jre8
COPY /<war_file_location>/techpoint.war /usr/local/tomcat/webapps/techpoint.war
现在Tomcat将提取并部署war文件。如何访问部署的应用程序取决于应用程序的webroot。比如说,
http://<ip_address>:8091/techpoint/index.html
http://:8091/techpoint/index.html
您不能只运行.war webapp。您可以像tomcat一样将其装载到服务器上。看,不要喊Java:)
http://<ip_address>:8091/techpoint/index.html