我正在尝试在docker容器上部署spring boot war文件
这是我的docker文件:
FROM tomcat:alpine
RUN wget -O /usr/local/tomcat/webapps/ROOT.war -U admin:Learning http://localhost:8082/artifactory/demoArtifactory/com/demo/0.0.1-SNAPSHOT/demo-0.0.1-SNAPSHOT.war
EXPOSE 8080
CMD ["catalina.sh", "run"]
我无法连接到localhost:7000
更新: 这是docker run命令:
docker run -it --name演示应用程序-d -p 8080:8080 hmt / demo-application:49
"PortBindings": {
"8080/tcp": [
{
"HostIp": "",
"HostPort": "8080"
}
]
}
现在我的tomcat已在localhost:8080上启动,但我无法访问我的应用程序
更新:
@SpringBootApplication
public class DemoApplication{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
答案 0 :(得分:3)
查看您的端口信息:
容器的端口9100
在主机的端口7000
上发布。
但是请看一下您的日志应用程序:它部署在8080
上(而不是9100
上)。
您需要在容器的8080
端口上发布容器端口7000
,例如:
docker run -p 7000:8080 foo-image
答案 1 :(得分:1)
1。您需要扩展SpringBootServletInitializer.Spring Boot Servlet Initializer类文件允许您使用Servlet容器在启动应用程序时对其进行配置 参考:https://www.tutorialspoint.com/spring_boot/spring_boot_tomcat_deployment.htm
2。将您的war文件从ROOT.war重命名为sample.war之类。ROOT默认应用通常是Tomcat Manager