1、执行命令:docker exec -t object-fpm composer install -vvv,报错:[RuntimeException] git was not found in your PATH, skipping source download。如图1
![执行命令:docker exec -t object-fpm composer install -vvv,报错:[RuntimeException] git was not found in your PATH, skipping source download。](https://media.shuijingwanwq.com/2022/01/1-4.png)
Executing command (CWD): rm -rf '/object/vendor/ua-parser/uap-php'
[RuntimeException]
git was not found in your PATH, skipping source download
Exception trace:
() at phar:///usr/local/bin/composer/src/Composer/Downloader/GitDownloader.php:75
Composer\Downloader\GitDownloader->doDownload() at phar:///usr/local/bin/composer/src/Composer/Downloader/VcsDownloader.php:73
Composer\Downloader\VcsDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:224
Composer\Downloader\DownloadManager->Composer\Downloader\{closure}() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:217
Composer\Downloader\DownloadManager->Composer\Downloader\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/RejectedPromise.php:25
React\Promise\RejectedPromise->then() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:74
React\Promise\Deferred->React\Promise\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:166
React\Promise\Deferred->processQueue() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:95
React\Promise\Deferred->resolve() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:104
React\Promise\Deferred->reject() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/RejectedPromise.php:25
React\Promise\RejectedPromise->then() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:76
React\Promise\Deferred->React\Promise\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:166
React\Promise\Deferred->processQueue() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:95
React\Promise\Deferred->resolve() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:104
React\Promise\Deferred->reject() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/RejectedPromise.php:25
React\Promise\RejectedPromise->then() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:76
React\Promise\Deferred->React\Promise\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:166
React\Promise\Deferred->processQueue() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:95
React\Promise\Deferred->resolve() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:104
React\Promise\Deferred->reject() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/RejectedPromise.php:25
React\Promise\RejectedPromise->then() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:76
React\Promise\Deferred->React\Promise\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:166
React\Promise\Deferred->processQueue() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:95
React\Promise\Deferred->resolve() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Deferred.php:104
React\Promise\Deferred->reject() at phar:///usr/local/bin/composer/vendor/react/promise/src/React/Promise/Promise.php:45
React\Promise\Promise->React\Promise\{closure}() at n/a:n/a
call_user_func() at phar:///usr/local/bin/composer/src/Composer/Util/Http/CurlDownloader.php:526
Composer\Util\Http\CurlDownloader->rejectJob() at phar:///usr/local/bin/composer/src/Composer/Util/Http/CurlDownloader.php:380
Composer\Util\Http\CurlDownloader->tick() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:375
Composer\Util\HttpDownloader->countActiveJobs() at phar:///usr/local/bin/composer/src/Composer/Util/Loop.php:93
Composer\Util\Loop->wait() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:457
Composer\Installer\InstallationManager->waitOnPromises() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:340
Composer\Installer\InstallationManager->downloadAndExecuteBatch() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:267
Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:707
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:249
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:136
Composer\Command\InstallCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:310
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:122
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:63
require() at /usr/local/bin/composer:24
install [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-scripts] [--no-progress] [--no-install] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] []...
wangqiang@DESKTOP-QLPK8QM:/mnt/e/wwwroot/xgrit/object$
2、由于使用 alpine 基础镜像。编辑 Dockerfile ,添加:apk add –no-cache git 。如图2

3、构建容器后,执行命令:docker exec -t object-fpm composer install -vvv,再次报错:error: cannot run ssh: No such file or directory。但是,Git 相关的报错已经得到解决。如图3

Executing command (CWD): rm -rf '/object/vendor/ua-parser/uap-php'
[RuntimeException]
Failed to execute git clone --mirror -- 'git@git.xxx.com:xgrit/nova.git' '/root/.composer/cache/vcs/git-git.xxx.com-xgrit-nova.git/'
Cloning into bare repository '/root/.composer/cache/vcs/git-git.xxx.com-xgrit-nova.git'...
error: cannot run ssh: No such file or directory
fatal: unable to fork
Exception trace:
需要长期技术维护或远程问题排查?
我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。
如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:
- ✅ PHP / Laravel / Yii2 老项目无人维护
- ✅ Go / Gin 后端接口需要排查或优化
- ✅ WordPress 网站访问慢、报错或插件冲突
- ✅ Nginx / MySQL / Redis / Linux 服务器异常
- ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
- ✅ 需要长期远程技术支持或兼职维护
更多介绍请查看:关于我 & 合作
微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

发表回复