Github Actions中Rust调用docker-compose提示No such file or directory问题
问题根因
你遇到的NotFound错误不是找不到docker-compose.yml配置文件,是系统找不到你要执行的docker-compose命令本身。
当前GitHub Actions的macOS运行环境中,Docker默认仅提供docker compose(空格分隔的Docker子命令)形式的调用入口,旧版独立二进制的docker-compose默认没有预装,所以Rust的Command找不到docker-compose可执行文件才抛出了错误码2的异常。
修复方案
有两种可选的修复方式:
- 方案1(推荐):改用Docker新版标准调用语法,将执行命令从
docker-compose改为docker,第一个参数传入compose即可,修改后的代码如下:
let result = Command::new("docker") .current_dir(&docker_compose_file) .args(&["compose", "up", "-d"]) .status() .unwrap();
- 方案2:如果必须兼容旧版
docker-compose调用方式,可以在CI流程中提前安装独立二进制,在执行你的Rust程序之前新增一步执行命令:
brew install docker-compose
内容的提问来源于stack exchange,提问作者NoKey
相关产品推荐
相关产品推荐

