You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从远程服务器通过SSH执行docker-compose exec报错的问题咨询

解决SSH远程执行docker-compose exec命令的报错问题

首先一眼就揪出了最明显的问题——你命令里的cmposer是拼写错误!正确的命令应该是composer,这正是导致"executable file not found in $PATH"报错的直接原因。先把这个拼写修正过来试试,比如:

ssh -p 22000 -C -i /home/sportlevel/.ssh/id_rsa -l sportlevel 194.58.107.224 'cd /sportlevel/k4fntr && docker-compose exec -T "app" composer install'

如果改完拼写还是遇到类似问题(虽然大概率这个就是元凶),那就要考虑SSH远程执行时的shell环境差异了:

  • 当你直接登录目标服务器时,用的是交互式登录shell,会自动加载~/.bashrc、~/.profile这类配置文件,PATH变量会包含composer的路径;
  • 但通过SSH远程执行单条命令时,默认是非交互式非登录shell,不会加载这些环境配置,导致PATH里找不到composer的位置。

这种情况下可以试试这几个方案:

  1. 使用composer的绝对路径执行:先在目标服务器上用which composer找到它的绝对路径(比如/usr/local/bin/composer),然后替换命令里的composer:
ssh -p 22000 -C -i /home/sportlevel/.ssh/id_rsa -l sportlevel 194.58.107.224 'cd /sportlevel/k4fntr && docker-compose exec -T "app" /usr/local/bin/composer install'
  1. 强制远程shell以登录模式运行,让它加载完整环境配置:用bash -l -c包裹你的命令,确保加载登录时的环境变量:
ssh -p 22000 -C -i /home/sportlevel/.ssh/id_rsa -l sportlevel 194.58.107.224 'bash -l -c "cd /sportlevel/k4fntr && docker-compose exec -T app composer install"'
  1. 如果是通过Makefile执行,记得同步修正Makefile里的拼写错误,也可以套用上面的绝对路径或登录shell方案。

先优先检查拼写错误,这个低级失误真的很容易被忽略,改完应该就能解决你的问题了!

内容的提问来源于stack exchange,提问作者Viktor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:54:05