docker deploymnet成功后,无法在本地主机上连接应用程序

时间:2020-08-23 14:37:19

标签: spring-boot docker dockerfile war

我正在尝试在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"]

enter image description here

enter image description here

我无法连接到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);
    }

}

2 个答案:

答案 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