laravel - 如何使用 laradock 备份数据库 mongodb
问题描述
我无法备份数据库。
框架:Laravel
数据库:MongoDB
环境:拉拉多克
包:spatie/laravel 备份
配置/备份.php
'databases' => [ 'mongodb' ],
运行命令:php artisan backup:run
Backup failed because The dump process failed with exitcode 127 : Command not found : sh: 1: mongodump: not found
.
#0 /var/www/vendor/spatie/db-dumper/src/DbDumper.php(246): Spatie\DbDumper\Exceptions\DumpFailed::processDidNotEndSuccessfully(Object(Symfony\Component\Process\Process))
#1 /var/www/vendor/spatie/db-dumper/src/Databases/MongoDb.php(37): Spatie\DbDumper\DbDumper->checkIfDumpWasSuccessFul(Object(Symfony\Component\Process\Process), '/var/www/storag...')
#2 /var/www/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(250): Spatie\DbDumper\Databases\MongoDb->dumpToFile('/var/www/storag...')
#3 [internal function]: Spatie\Backup\Tasks\Backup\BackupJob->Spatie\Backup\Tasks\Backup\{closure}(Object(Spatie\DbDumper\Databases\MongoDb), 'mongodb')
#4 /var/www/vendor/laravel/framework/src/Illuminate/Support/Collection.php(1122): array_map(Object(Closure), Array, Array)
#5 /var/www/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(253): Illuminate\Support\Collection->map(Object(Closure))
#6 /var/www/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(167): Spatie\Backup\Tasks\Backup\BackupJob->dumpDatabases()
#7 /var/www/vendor/spatie/laravel-backup/src/Tasks/Backup/BackupJob.php(143): Spatie\Backup\Tasks\Backup\BackupJob->createBackupManifest()
#8 /var/www/vendor/spatie/laravel-backup/src/Commands/BackupCommand.php(52): Spatie\Backup\Tasks\Backup\BackupJob->run()
#9 [internal function]: Spatie\Backup\Commands\BackupCommand->handle()
#10 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(32): call_user_func_array(Array, Array)
#11 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(90): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#12 /var/www/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php(34): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array
, Object(Closure))
#13 /var/www/vendor/laravel/framework/src/Illuminate/Container/Container.php(580): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NUL
L)
#14 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(183): Illuminate\Container\Container->call(Array)
#15 /var/www/vendor/symfony/console/Command/Command.php(255): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputS
tyle))
#16 /var/www/vendor/laravel/framework/src/Illuminate/Console/Command.php(170): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Objec
t(Illuminate\Console\OutputStyle))
#17 /var/www/vendor/spatie/laravel-backup/src/Commands/BaseCommand.php(16): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Componen
t\Console\Output\ConsoleOutput))
#18 /var/www/vendor/symfony/console/Application.php(908): Spatie\Backup\Commands\BaseCommand->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\
Output\ConsoleOutput))
#19 /var/www/vendor/symfony/console/Application.php(269): Symfony\Component\Console\Application->doRunCommand(Object(Spatie\Backup\Commands\BackupCommand), Object(Symfony\Component\C
onsole\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /var/www/vendor/symfony/console/Application.php(145): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Con
sole\Output\ConsoleOutput))
#21 /var/www/vendor/laravel/framework/src/Illuminate/Console/Application.php(90): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object
(Symfony\Component\Console\Output\ConsoleOutput))
#22 /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(122): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object
(Symfony\Component\Console\Output\ConsoleOutput))
#23 /var/www/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#24 {main}
Backup failed because: The dump process failed with exitcode 127 : Command not found : sh: 1: mongodump: not found
我尝试安装 mongo, mongo tools ... 来执行 mongodump 但失败了,我发现这里的问题是workspace
容器无法调用 mongodump 但不知道如何修复它。
解决方案
mongodump
在 Laradock的workspace
容器中不可用,但在mongo
容器中。
无论如何,mongo 容器无法运行 php,所以它没有帮助。
也许你可以改变你的策略,创建一个名为的新容器backup
,一旦启动,它将备份你的应用程序。
您可以从目录Dockerfile
中的laradock/workspace
(以及docker-compose.yml
文件中的容器定义)开始。
推荐阅读
- r - 带有变量的逻辑表达式在 R 错误中选择子集:子集必须是逻辑的
- python - Django 中的枚举类型
- lazy-loading - 如何在光滑的滑块中延迟加载图片元素?
- delphi - 运行项目时UniGUI组件乱七八糟
- javascript - 使用 javascript 函数对对象数组求和
- r - 如何在modelsummary()中添加来自kable()的参数,输出为kableExtra
- node.js - 从@ManyToOne() 关系 mikro orm mongodb 获取数据
- wordpress - 导入/导出全球 WooCommerce 属性
- javascript - 在 javascript Map 中使用 JSON 对象作为记忆函数的查找
- javascript - 去掉vue和vuex和js中的当前产品?