我需要在 docker 容器中的 Tomcat 上收集简单的 spring 应用程序,但是当我尝试 localhost:8080 时,我得到:
404 Type Status Report
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Dockerfile:
FROM tomcat:latest
COPY target/internship_project.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
日志:
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/openjdk-11
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
25-Jan-2022 09:36:25.829 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.0.16
25-Jan-2022 09:36:25.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jan 15 2022 13:19:56 UTC
25-Jan-2022 09:36:25.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.16.0
25-Jan-2022 09:36:25.832 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
25-Jan-2022 09:36:25.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 5.10.16.3-microsoft-standard-WSL2
25-Jan-2022 09:36:25.833 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
25-Jan-2022 09:36:25.834 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11
25-Jan-2022 09:36:25.836 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.13+8
25-Jan-2022 09:36:25.836 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
25-Jan-2022 09:36:25.836 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
25-Jan-2022 09:36:25.837 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
25-Jan-2022 09:36:25.848 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
25-Jan-2022 09:36:25.849 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
25-Jan-2022 09:36:25.850 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
25-Jan-2022 09:36:25.855 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.31] using APR version [1.7.0].
25-Jan-2022 09:36:25.855 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true], UDS [true].
25-Jan-2022 09:36:25.857 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1k 25 Mar 2021]
25-Jan-2022 09:36:26.137 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
25-Jan-2022 09:36:26.162 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [475] milliseconds
25-Jan-2022 09:36:26.212 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
25-Jan-2022 09:36:26.213 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.0.16]
25-Jan-2022 09:36:26.228 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/internship_project.war]
25-Jan-2022 09:36:28.062 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
25-Jan-2022 09:36:28.109 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/internship_project.war] has finished in [1,880] ms
25-Jan-2022 09:36:28.118 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]25-Jan-2022 09:36:28.131 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1968] milliseconds
我尝试:
localhost:8080/internship_project
,但得到:
Type Status Report
Message The requested resource [/internship_project/] is not available
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
我也尝试过:
localhost:8080/internship_project_war
并得到了同样的结果。
有什么想法可以解决这个问题吗?
尝试这样做
docker pull tomcat:latest
docker run -d --name mytomcat -p 8080:8080 tomcat:latest
docker exec -it mytomcat /bin/bash
mv webapps webapps2
mv webapps.dist/ webapps
exit
为了更好地理解:
下载tomcat: docker pull tomcat:最新
运行tomcat: docker run -d --name mytomcat -p 8080:8080 tomcat:最新
要更改为您在本示例中创建的容器,“mytomcat”是您的 tomcat 的名称: docker exec -it mytomcat /bin/bash
在文件夹之间移动文件进行备份: mv webapps webapps2
最后从“webapps.dist”复制“webapps”文件夹中缺少的文件: mv webapps.dist/webapps
退出
希望有帮助。