RobertWu185
V2EX  ›  Java

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

  •  
  •   RobertWu185 · Aug 17, 2018 · 2033 views
    This topic created in 2828 days ago, the information mentioned may be changed or developed.

    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 replies    2018-08-23 23:53:21 +08:00
    xuanbg
        1
    xuanbg  
       Aug 23, 2018
    容器里面是不支持存储数据的,数据要么挂外部路径,要么挂数据卷来存储。
    RobertWu185
        2
    RobertWu185  
    OP
       Aug 23, 2018
    感谢回答。但是 java -jar app.war 直接在容器中启动应用而已,swagger ui 的静态资源在 war 里啊,我也试着观察了,发现 war 包并没有释放文件到任何目录的。但是就是访问不了 swagger ui 的静态资源文件呢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2935 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 444ms · UTC 14:19 · PVG 22:19 · LAX 07:19 · JFK 10:19
    ♥ Do have faith in what you're doing.