请教下为何 maven 打包生成的 war 包使用 Java -jar app.war 在 docker 中运行无法访问 swagger ui 但是物理机没问题?

2018-08-17 14:52:29 +08:00
 RobertWu185

maven 打包生成的 war 包在物理机直接 java -jar app.war 启动.

可以访问 swagger ui(比如路劲 /swagger-ui/index.html)

但是用 frolvlad/alpine-oraclejdk8:latest 的 docker 镜像运行上面的 war 包就只能访问接口,无法访问到 swagger ui 呢?

自己试着追踪了下,发现运行在容器中的只能访问 swagger 的 api,比如 /management/logs,/swagger-resources/configuration/ui, api/profile-info 还有 /v2/api-docs.

但是就是找不到 css,js,html 等静态文件,比如 /swagger-ui/index.html.

这是为何呢?

1608 次点击
所在节点    Java
2 条回复
xuanbg
2018-08-23 22:47:34 +08:00
容器里面是不支持存储数据的,数据要么挂外部路径,要么挂数据卷来存储。
RobertWu185
2018-08-23 23:53:21 +08:00
感谢回答。但是 java -jar app.war 直接在容器中启动应用而已,swagger ui 的静态资源在 war 里啊,我也试着观察了,发现 war 包并没有释放文件到任何目录的。但是就是访问不了 swagger ui 的静态资源文件呢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/480733

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX