无法使用 Docker 在 tomcat 上 运行 webapplication
Can't run webapplication on tomcat using Docker
我想在我的浏览器上显示我为学校项目创建的网络应用程序。
首先,我将我的 Dockerfile 和我的 .war 文件放在同一个文件夹 /home/giorgio/Documenti/dockerProject
中。我在我的 Dockerfile 中写了以下内容:
# Pull base image
From tomcat:7-jre7
# Maintainer
MAINTAINER "xyz <xyz@email.com">
# Copy to images tomcat path
RUN rm -rf /usr/local/tomcat/webapps/ROOT
COPY file.war /home/giorgio/Documenti/apache-tomcat-7.0.72/webapps/
然后我使用 ubuntu shell:
中的命令构建了图像
docker build -t myName /home/giorgio/Documenti/dockerProjects
最后,我 运行 在 shell:
docker run --rm -it -p 8080:8080 myName
现在,一切正常,没有显示任何错误,但是当我想从我的浏览器访问 localhost:8080
时,什么都显示了,但是 tomcat 已经启动 运行宁完美无缺
关于我看不到的可能问题有什么想法吗?
谢谢!
这是你的整个 Dockerfile?
因为您刚刚删除了所有 ROOT 内容(第 3 步)
然后用您的应用程序复制 war 文件(第 4 步)- 可能 错误的文件夹 仅在问题中( 应该是 /usr/local/tomcat/webapps/)
但是我没有看到任何端点或启动前台应用程序。
我想你需要添加:
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
然后 运行 tomcat。它是 EXPOSE
端口的例程,但是当您使用 -p
时 docker 会隐式公开。
因此您的 Dockerfile 应该如下所示:
# Pull base image
From tomcat:7-jre7
# Maintainer
MAINTAINER "xyz <xyz@email.com">
# Copy to images tomcat
RUN rm -rf /usr/local/tomcat/webapps/ROOT
# fixed path for copying
COPY file.war /usr/local/tomcat/webapps/
# Routine for me - optional for your case
EXPOSE 8080
# And run tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
我想在我的浏览器上显示我为学校项目创建的网络应用程序。
首先,我将我的 Dockerfile 和我的 .war 文件放在同一个文件夹 /home/giorgio/Documenti/dockerProject
中。我在我的 Dockerfile 中写了以下内容:
# Pull base image
From tomcat:7-jre7
# Maintainer
MAINTAINER "xyz <xyz@email.com">
# Copy to images tomcat path
RUN rm -rf /usr/local/tomcat/webapps/ROOT
COPY file.war /home/giorgio/Documenti/apache-tomcat-7.0.72/webapps/
然后我使用 ubuntu shell:
中的命令构建了图像docker build -t myName /home/giorgio/Documenti/dockerProjects
最后,我 运行 在 shell:
docker run --rm -it -p 8080:8080 myName
现在,一切正常,没有显示任何错误,但是当我想从我的浏览器访问 localhost:8080
时,什么都显示了,但是 tomcat 已经启动 运行宁完美无缺
关于我看不到的可能问题有什么想法吗? 谢谢!
这是你的整个 Dockerfile?
因为您刚刚删除了所有 ROOT 内容(第 3 步)
然后用您的应用程序复制 war 文件(第 4 步)- 可能 错误的文件夹 仅在问题中( 应该是 /usr/local/tomcat/webapps/)
但是我没有看到任何端点或启动前台应用程序。
我想你需要添加:
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]
然后 运行 tomcat。它是 EXPOSE
端口的例程,但是当您使用 -p
时 docker 会隐式公开。
因此您的 Dockerfile 应该如下所示:
# Pull base image
From tomcat:7-jre7
# Maintainer
MAINTAINER "xyz <xyz@email.com">
# Copy to images tomcat
RUN rm -rf /usr/local/tomcat/webapps/ROOT
# fixed path for copying
COPY file.war /usr/local/tomcat/webapps/
# Routine for me - optional for your case
EXPOSE 8080
# And run tomcat
CMD ["/usr/local/tomcat/bin/catalina.sh", "run"]