V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RobertWu185
V2EX  ›  Java

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

  •  
  •   RobertWu185 · 2018-08-17 14:52:29 +08:00 · 1613 次点击
    这是一个创建于 2294 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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.

    这是为何呢?

    2 条回复    2018-08-23 23:53:21 +08:00
    xuanbg
        1
    xuanbg  
       2018-08-23 22:47:34 +08:00
    容器里面是不支持存储数据的,数据要么挂外部路径,要么挂数据卷来存储。
    RobertWu185
        2
    RobertWu185  
    OP
       2018-08-23 23:53:21 +08:00
    感谢回答。但是 java -jar app.war 直接在容器中启动应用而已,swagger ui 的静态资源在 war 里啊,我也试着观察了,发现 war 包并没有释放文件到任何目录的。但是就是访问不了 swagger ui 的静态资源文件呢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:40 · PVG 11:40 · LAX 19:40 · JFK 22:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.