Created
April 8, 2020 05:51
-
-
Save ikapper/435e6c3ff5628bb689cb28bfc1678066 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
########################### | |
# | |
# 注意: このスクリプトが存在するフォルダから実行することを前提としている。 | |
# | |
# docker desktop環境に別環境のvolumeを復元する。 | |
# docker desktopにある同名のvolumeは、削除される。 | |
# | |
########################### | |
# docker volume ls | awk 'NR>1 {print "VOLUME_LIST+=(\"" $2 "\")"}' | pbcopy | |
# 上のコマンドでコピペできる。 | |
VOLUME_LIST=(...) | |
echo Docker Desktop環境に移行... | |
eval $(docker-machine env -u) | |
if [ $? -eq 0 ]; then | |
echo Docker Desktopに既に存在するこれらのvolumeを削除していいですか? | |
echo ${VOLUME_LIST[@]} | |
echo -n 以上のうち存在するvolumeが削除されます。よろしいですか? [y/n]: | |
read yn | |
case "$yn" in | |
[yY] ) echo ok ;; | |
* ) echo 処理を中止します。 ;exit 2 ;; | |
esac | |
for vol in "${VOLUME_LIST[@]}" | |
do | |
docker volume rm ${vol} | |
done | |
echo 既存のvolumeの削除を終了... | |
# volumeの作成・復元 | |
backups=($(ls | grep tar)) | |
for bu in "${backups[@]}" | |
do | |
volname=$(echo $bu | sed -e "s/backup_//g" | sed -e "s/.tar//g") | |
docker volume create ${volname} | |
echo ボリューム${volname}を作成・リストア... | |
docker run --rm -v ${volname}:/vol_data -v $(pwd):/backup ubuntu bash -c "cd /vol_data && tar xvf /backup/${bu} --strip 1" | |
echo ボリューム${volname}のリストアが完了 | |
done | |
else | |
echo 失敗 | |
exit -1 | |
fi | |
echo 全ての処理が終了しました。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment