首页 > 解决方案 > 使用 python 子进程调用 docker-compose 以 FileNotFoundError 'docker-compose' 结尾

问题描述

我对 docker 很陌生,所以我的 python 脚本遇到了一些错误状态。它应该侦听几个 docker 容器,这些容器已使用特定的 yaml 文件通过docker-compose up启动。

点火过程正在工作,但是当一个容器发生故障时,另一个容器(观察实体)应该使用docker-compose start deadmodule来恢复它

我的设置:

我正在尝试这个:

subprocess.call('docker-compose',
                'start',
                'deadmodule')

我也试过了Popen(['docker-compose', 'start', 'deadmodule'], stdout=PIPE, stderr=PIPE)

然而它以此结束:

FileNotFoundError: [Errno 2] No such file or directory: 'docker-compose': 'docker-compose'

标签: pythondockerdocker-composesubprocess

解决方案


当你不使用shell=True时,文件结尾不会自动添加,所以你需要调用的是docker-compose.exe,而不是docker-compose.


推荐阅读