gpt4 book ai didi

docker-compose scale - 代理实例 ID

转载 作者:行者123 更新时间:2023-12-02 20:51:47 27 4
gpt4 key购买 nike

当我使用docker-compose scale时,我希望在 yml 文件中使用实例 ID。

docker-compose.yml:

myservice:
volumes:
- ./volumes/foo{AGENT_ID}/bar:/foo/bar

我已经看到很多围绕这个主题的讨论,但我仍然没有找到明确的答案。

是否有一个环境变量或类似的变量可以让我这样使用?如果我可以在 bash 脚本等中使用它,那就太理想了。

最佳答案

我知道这可能不是一个完美的解决方案,但如果您不介意在节点之间共享数据..它确实工作得很好。我将其用于本地测试,因此对我来说它是安全的。

Docker-compose.yml

...
volumes:
- /var/run/docker.sock:/var/run/docker.sock
...

Dockerfile

...
RUN pip3 install docker
...

在每个节点中,我部署以下脚本get_name.py

from docker import Client
import os

hostname = os.environ['HOSTNAME']

cli = Client(base_url='unix://var/run/docker.sock')
data = cli.containers()

for d in data:
id = d['Id'][:12]
names = d['Names']
if id == hostname:
print(names[0])
quit()

print(hostname)

当节点启动时(start.sh),它会查询其名称并创建到相应子目录的符号链接(symbolic link):

...
NODE_NAME=$(python /root/scripts/get_name.py)
OWN_VOLUME_NAME="/shared_volumes${NODE_NAME}"
ln -s ${OWN_VOLUME_NAME} /data
...

关于docker-compose scale - 代理实例 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46111635/

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