Еще один быстрый скрипт для бекапа mysql из docker
Мой предыдущий способ “просто запусти и залинкуй контейнер” разбился о проблемы с поддержкой mysql версии 5.7 и выше и то, что docker-compose версии 2 не поддерживает публикацию environment переменных слинкованного контейнера.
Поэтому пришлось разработать свой, крайне простой способ для выгрузки mysql бекапа из mysql контейнера. Поскольку у mysql свой хитры entrypoint, простая замена CMD не работала.
Вот работающий код.
docker run \
--rm \
--link container_db_1:db \
--entrypoint "/usr/bin/mysqldump" mysql:5 -hdb -uroot -proot database > ./backup/mysql-latest.sql
обратите внимание, что > ./backup/mysql-latest.sql завернет вывод из контейнера в файл на хосте, а не внутри.
В качестве образа mysql:5 используйте тот образ, который уже используется в вашем проекте (mysql:5.6, например).
Чуть позднее сделаю рецепт для ansible.