将参数传递给 docker compose

新手上路,请多包涵

在我的 docker compose 文件中,有一个我想在运行期间生成的动态字段。实际上它是一个字符串模板:

 environment:
    - SERVER_URL:https://0.0.0.0:${PORT}

我想动态配置这个 PORT 参数

docker-compose run <service> PORT=443

文档 中有 ARGS 我想我可以使用的参数集。但是没有信息如何使用撰写文件中的那些

原文由 dr11 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 767
2 个回答

这可以通过 docker stack deploy

环境部分中的示例撰写文件:

 - MY_VARIABLE_NAME=${MY_VARIABLE_VALUE}

堆栈部署命令(我在 Windows 中从 Gitbash 运行此命令):

 MY_VARIABLE_VALUE=some-value docker stack deploy --compose-file compose_file_here stackname

参考在此处 查看此 Github 帖子

原文由 joshmcode 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 docker-compose 中,参数仅在 dockerfile 中可用且有用。您可以指定您在前面的级别中正在执行的操作,如下所示:

 #dockerfile
ARG PORT
ENV SERVER_URL "https://0.0.0.0:$PORT"

你的端口可以在你的 docker-compose.yml 中设置:

 build:
  context: .
  args:
    - PORT=443

无论如何,它实际上是一个环境变量。如果适合您,您可以通过 run 命令传递它:

 PORT=443 docker-compose run <service>
#or
docker-compose run <service> -e PORT=443

原文由 dzof31 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题