问题描述
我使用他们的 dockerize 映像在本地成功运行了 swagger-ui 和 swagger-editor,这是我的 docker-compose.yml
。
swagger-editor:
image: swaggerapi/swagger-editor
container_name: "swagger-editor"
ports:
- "8081:8080"
networks:
- eb-back_network
swagger-ui:
image: swaggerapi/swagger-ui
container_name: "swagger-ui"
restart: always
ports:
- "8082:8080"
volumes:
- ./swagger/swagger.json:/swagger.json
environment:
SWAGGER_JSON: /swagger.json
networks:
- eb-back_network
我可以在 localhost:8082 上访问 localhost:8081
上的 swagger-editor 和 swagger-ui。
我按照 Container Registry & Runtime (Docker Deploys) 部署了我的应用程序 o Heroku
它工作正常,但我无法在 Heroku 上访问 swagger。
我不知道该怎么做? 我认为我在本地运行的图像与 Heroku 无关,或者我必须使用一些插件,但我不知道可以在 heroku 上访问 swagger 的 URL ?。
解决方法
WebDyno 仅公开一个端口,因此您不能在同一个 Dyno 上提供 2 个应用程序。
您可以合并这两个应用,其中每个应用都有不同的网址(/swagger-editor
和 swagger-ui
)。
或者您可以创建 2 个 Heroku 应用程序(每个应用程序一个),以便获得 2 个不同的网址(swagger-editor.herokuapp.com
和 swagger-ui.herokuapp.com
)。
如果您使用 Heroku Docker Registry,这应该很简单:使用相同的代码构建 2 个映像,但每个 Dockerfile 启动不同的应用程序。