Я хочу сделать скрипт, который делает бэкапы бд и сохраняет по определенному пути запускаясь кроном 2 раза в день.
Юзаю ларавел, я в vps поставил в крон файл команду, которая будет дергать другие крон команды, которые я создам через Laravel:
* * * * * docker exec app /var/www/artisan schedule:run >> /dev/null 2>&1
И вот вопрос - если по сути эта команда запускается через php контейнер, а я хочу выполнить команду mysqldump, которая должна запускаться непосредственно из контейнера mysql, как это организовать?
Метод, который делает бэкап выглядит так:
$filename = 'backup-' . date("Y-m-d_h_i_s") . '.sql';
$command = "docker exec db mysqldump --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " " . env('DB_DATABASE') . " | gzip > " . "/var/backups/" . $filename;
$returnVar = null;
$output = null;
exec($command, $output, $returnVar);
Но, сохранение не происходит :(
Однако если я выполняю эту команду в самом VPS - то всё сохраняется. Как я понял, мне нужно каким то образом стучаться из одного контейнера в другой контейнер, как это сделать?