@driverx18

Как обращаться к mysql контейнеру из php контейнера?

Я хочу сделать скрипт, который делает бэкапы бд и сохраняет по определенному пути запускаясь кроном 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 - то всё сохраняется. Как я понял, мне нужно каким то образом стучаться из одного контейнера в другой контейнер, как это сделать?
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Arik
Может проще отдельно?
* * * * * docker exec db mysqldump ... && docker exec app ...
Ответ написан
@lubezniy
Правильно я понимаю, что IP-адреса (или доменные имена) у контейнеров разные? Добавьте параметр host, чтобы можно было связать два контейнера, и будет вам щастье.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы