如何保留用于在Docker中运行映像的选项的副本?

时间:2019-04-10 21:32:27

标签: docker swagger-ui

我只是想出了如何使用以下命令通过我自己的openapi.json文件启动swagger-ui并与Docker一起运行:

docker run -p 80:8080 -e SWAGGER_JSON=/foo/openapi.json -v ~/source:/foo swaggerapi/swagger-ui

openapi.json文件在源代码管理中,可以在许多地方运行。

除了将其放入自述文件中之外,是否有任何其他方法可以使该命令易于重新运行?我可以为此使用Dockerfile吗?或者我可以使用docker-compose吗?最重要的部分是使其变得容易,然后使其变得易于更改/添加选项。

我也知道我可以使用可以更改的bash脚本,但是我想知道是否有任何Docker方式可以做到这一点,而不是黑客。

2 个答案:

答案 0 :(得分:1)

我更喜欢使用docker-compose进行更复杂的运行,以将所有选项保留在yaml文件中。然后,您只需要启动docker-compose up容器即可。 要在应用程序内获取更多选项,可以使用.env文件。

我认为这是使容器运行的最清晰方法,并且不需要该环境的下一个用户/开发人员任何知识。

答案 1 :(得分:1)

docker-compose是您的理想解决方案:

//docker-compose.yml

version: '3.7'
services:
  swagger:
    image: swaggerapi/swagger-ui
    ports:
      - "80:8080"
    environment:
      - SWAGGER_JSON=/foo/openapi.json
    volumes:
      - "~/source:/foo "

要运行它,只需按docker-compose up,就可以设置