gpt4 book ai didi

docker - 如何在docker-compose文件中获取随机服务端口并将其设置为env var?

转载 作者:行者123 更新时间:2023-12-02 18:37:41 38 4
gpt4 key购买 nike

这是docker-compose.yml的示例:

# docker-compose.yml

version: '3'

services:
web:
image: ghost:latest
ports:
- 0:2368
environment:
url: http://ghost.localhost:30001

我想获得服务随机端口,并在 url env变量中进行设置,如下所示:
url: "http://ghost.localhost:{{.Service.Port}}"
最终目标是无需手动设置端口即可部署多个堆栈。
docker stack deploy --compose-file=docker-compose.yml ghost1 docker stack deploy --compose-file=docker-compose.yml ghost2 docker stack deploy --compose-file=docker-compose.yml ghost3
这是可能的 ?

最佳答案

是的,您可以选择端口范围(我建议使用更高的范围,例如9000-9100),但是请记住,每个打开的端口都在启动一个进程:Why does Docker run so many processes to map ports though to my application?因此性能可能会不理想。

您可能要研究使用docker“主机网络”或其他一些非默认网络设置。

关于docker - 如何在docker-compose文件中获取随机服务端口并将其设置为env var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52677444/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com