TranDuc
TranDuc

Reputation: 23

How to backup database mongodb using laradock

I cannot backup the database.

Framework: Laravel

Database: Mongodb

Environment: Laradock

Package: spatie/laravel backup

config/backup.php


'databases' => [ 'mongodb' ],

Run command: 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

I tried installing mongo, mongo tools ... to execute mongodump but failed, I found the problem here is that the workspace container cannot call a mongodump but doesn't know how to fix it.

Upvotes: 0

Views: 811

Answers (1)

Leonardo Rossi
Leonardo Rossi

Reputation: 3032

mongodump is not available in the workspace container in Laradock, but it is in mongo container.

Anyway mongo container cannot run php so it doesn't help.

Maybe you can change your strategy create a new container called backup that will make backups of your app, once started.

You can start from the Dockerfile in the laradock/workspace directory (and the definition of the container in docker-compose.yml file.

Upvotes: 1

Related Questions