Резервное копирование базы данных Mysql перед докер-компоновкой - PullRequest
0 голосов
/ 13 мая 2018

У меня есть контейнер для резервного копирования MySQL, который выполняет резервное копирование БД каждые 1 час, но мне нужно сделать резервное копирование только перед docker-compose down.Это вообще возможно?Насколько я понимаю, это должен быть какой-то хук "Before Down" "After Start".

Я хочу использовать что-то вроде этого, но это должно быть сделано автоматически прямо перед закрытием контейнера:

docker exec MYSQL_CONTAINER_ID /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql

ОБНОВЛЕНИЕ

То, что я до сих пор делал, это сценарий down.sh внутри этого скрипта, который у меня есть:

#!/bin/bash

CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

docker exec test1-mysql sh -c 'exec mysqldump --databases local -uroot -p"$MYSQL_ROOT_PASSWORD"' > "$CURRENT_DIR/docker/data/backup/local.sql"

docker-compose down

Швы законны для меня,JSUT нужно выяснить, как я могу передать имя контейнера MySQL в этот скрипт в качестве переменной.Здесь имя контейнера - test1-mysql.Я хотел бы получить это значение из docker-compose.yml.Есть идеи?

1 Ответ

0 голосов
/ 13 мая 2018

Заимствование из поста Как выполнить скрипт, когда я завершаю работу контейнера докера

TL; DR: остановка докера отправляет SIGTERM в pid ENTRYPOINT вашего контейнера.Вы можете изменить свой сценарий ENTRYPOINT, чтобы перехватывать SIGTERM и затем выполнять резервное копирование или выполнять другие действия по очистке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...