gpt4 book ai didi

python - docker-compose exec 导致 [Errno 2] 没有这样的文件或目录 : 'docker-compose' : 'docker-compose' in docker container

转载 作者:行者123 更新时间:2023-12-04 18:44:44 28 4
gpt4 key购买 nike

我正在使用 docker compose 创建一个容器网络,其中一个容器请求另一个容器运行一个进程。客户端还必须在出现错误或完成时监视这些过程。我的方法是像这样使用python的子进程Popen:
process = subprocess.Popen(cmd,stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
其中 cmd 是 ['docker-compose', 'exec', 'service2', 'sh', '-c', 'cp sourcefile /destination && python run.py']
但我得到这个错误
[Errno 2] No such file or directory: 'docker-compose': 'docker-compose'
我尝试在客户端容器上以 bash 模式执行相同的命令并得到
bash: docker-compose: command not found .我想过做一个dind,但这真的有必要吗?此命令适用于我的主机 docker-compose run --rm service2 python apples.py shell .记住什么是正确的方法我需要随时从 service1 查询在容器 service2 中运行的进程的返回码。我宣布了一个桥接网络。谢谢

最佳答案

我尝试了 here 的建议添加
COPY --from=library/docker:latest /usr/local/bin/docker /usr/bin/docker
COPY --from=docker/compose:1.23.2 /usr/local/bin/docker-compose /usr/bin/docker-compose
到我的 dockerfile 并且能够使用原始的 docker-compose 命令。仍然不确定最佳实践是否有效,但它确实有效。

编辑:添加到上面我设置还在我的 docker 文件中为 docker 主机设置了一个环境变量,如 RUN export DOCKER_HOST="tcp://0.0.0.0:2375"现在docker-compose service2 exec -c 'cmd'subprocess.Popen 合作在 service1 容器内创建。

关于python - docker-compose exec 导致 [Errno 2] 没有这样的文件或目录 : 'docker-compose' : 'docker-compose' in docker container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54129377/

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