spring-boot - docker deploymnet 成功后无法在 localhost 上连接应用程序
问题描述
我正在尝试在 docker 容器上部署 Spring Boot War 文件
这是我的码头文件:
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 demo-application -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);
}
}
解决方案
看你的端口信息:容器的端口发布在宿主机的端口
上。
但是看看你的日志应用程序:它部署在(而不是)上。
您想要的是在主机端口上发布容器端口,例如:9100
7000
8080
9100
8080
7000
docker run -p 7000:8080 foo-image
推荐阅读
- node.js - fs.d.ts 中的 __promisify__ 如何在设计时工作?
- flutter - `nfc_manager` 需要来自`permission_handler` 的什么许可?
- html - 在滚动条上的引导程序 4 中固定脱离容器的位置
- android - jetpack compose 将参数传递给 viewModel
- node.js - 当我尝试在另一台电脑上运行时,Cors 请求没有成功
- amazon-redshift - 如何更新在 redshift 中用作排序键的列的数据类型?
- spring-boot - 如何使用 EhCache 而不是 ConcurrentHashMap 提供程序
- aspnetboilerplate - ASP.NET Boilerplate 后台作业被放弃
- postgresql - 相关表中的 Hasura 聚合
- shell - 如何从 telnet 访问 shell 命令行?