mirror of https://github.com/docker/docs.git
Make quickstart script and migration script more defensible
This commit is contained in:
parent
5b1b8e69ed
commit
aee81588dd
Binary file not shown.
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
VM=default
|
VM=default
|
||||||
DOCKER_MACHINE=/usr/local/bin/docker-machine
|
DOCKER_MACHINE=/usr/local/bin/docker-machine
|
||||||
|
VBOXMANAGE=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
|
||||||
|
|
||||||
BLUE='\033[0;34m'
|
BLUE='\033[0;34m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
|
|
@ -12,7 +13,12 @@ unset LD_LIBRARY_PATH
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
/usr/local/bin/VBoxManage showvminfo $VM &> /dev/null
|
if [ ! -f $DOCKER_MACHINE ] || [ ! -f $VBOXMANAGE ]; then
|
||||||
|
echo "Either VirtualBox or Docker Machine are not installed. Please re-run the Toolbox Installer and try again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
$VBOXMANAGE showvminfo $VM &> /dev/null
|
||||||
VM_EXISTS_CODE=$?
|
VM_EXISTS_CODE=$?
|
||||||
|
|
||||||
if [ $VM_EXISTS_CODE -ne 0 ]; then
|
if [ $VM_EXISTS_CODE -ne 0 ]; then
|
||||||
|
|
|
||||||
|
|
@ -12,40 +12,45 @@ chown -R $USER:admin /usr/local/bin/docker
|
||||||
chown -R $USER:admin /usr/local/bin/docker-machine
|
chown -R $USER:admin /usr/local/bin/docker-machine
|
||||||
chown -R $USER:admin /usr/local/bin/docker-compose
|
chown -R $USER:admin /usr/local/bin/docker-compose
|
||||||
|
|
||||||
# Migrate Boot2Docker VM
|
# Migrate Boot2Docker VM if VirtualBox is installed
|
||||||
BOOT2DOCKER_VM=boot2docker-vm
|
BOOT2DOCKER_VM=boot2docker-vm
|
||||||
VM=default
|
VM=default
|
||||||
|
|
||||||
sudo -u $USER /usr/local/bin/VBoxManage showvminfo $BOOT2DOCKER_VM &> /dev/null
|
VBOXMANAGE=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
|
||||||
BOOT2DOCKER_VM_EXISTS_CODE=$?
|
|
||||||
|
|
||||||
sudo -u $USER /usr/local/bin/VBoxManage showvminfo $VM &> /dev/null
|
if [ -f $VBOXMANAGE ] && [ -f /usr/local/bin/docker-machine ]; then
|
||||||
VM_EXISTS_CODE=$?
|
sudo -u $USER $VBOXMANAGE showvminfo $BOOT2DOCKER_VM &> /dev/null
|
||||||
|
BOOT2DOCKER_VM_EXISTS_CODE=$?
|
||||||
|
|
||||||
# Exit if there's no boot2docker vm, or the destination VM already exists
|
sudo -u $USER $VBOXMANAGE showvminfo $VM &> /dev/null
|
||||||
if [ $BOOT2DOCKER_VM_EXISTS_CODE -eq 0 ] && [ $VM_EXISTS_CODE -ne 0 ]; then
|
VM_EXISTS_CODE=$?
|
||||||
# Prompt the user to migrate
|
|
||||||
osascript -e 'tell app "System Events" to display dialog "Migrate your existing Boot2Docker VM to work with the Docker Toolbox?\n \nYour existing Boot2Docker VM will not be affected. This should take about a minute." buttons {"Do not Migrate", "Migrate"} default button 2 cancel button 1 with icon 2 with title "Migrate Boot2Docker VM?"'
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
|
|
||||||
# Clear out any existing VM data in case the user deleted the VM manually via VirtualBox
|
# Exit if there's no boot2docker vm, or the destination VM already exists
|
||||||
/usr/local/bin/docker-machine rm -f $VM &> /dev/null
|
if [ $BOOT2DOCKER_VM_EXISTS_CODE -eq 0 ] && [ $VM_EXISTS_CODE -ne 0 ]; then
|
||||||
rm -rf ~/.docker/machine/machines/$VM
|
# Prompt the user to migrate
|
||||||
|
osascript -e 'tell app "System Events" to display dialog "Migrate your existing Boot2Docker VM to work with the Docker Toolbox?\n \nYour existing Boot2Docker VM will not be affected. This should take about a minute." buttons {"Do not Migrate", "Migrate"} default button 2 cancel button 1 with icon 2 with title "Migrate Boot2Docker VM?"'
|
||||||
# Run migration, opening logs if it fails
|
|
||||||
sudo -u $USER PATH=/Applications/VirtualBox.app/Contents/MacOS/:$PATH /usr/local/bin/docker-machine -D create -d virtualbox --virtualbox-import-boot2docker-vm $BOOT2DOCKER_VM $VM 2>&1 | sed -e '/BEGIN/,/END/d' > /tmp/toolbox-migration-logs.txt
|
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
osascript -e 'tell app "System Events" to display dialog "Boot2Docker VM migrated successfully to a Docker Machine VM named \"default\"" buttons {"Ok"} default button 1'
|
|
||||||
else
|
# Clear out any existing VM data in case the user deleted the VM manually via VirtualBox
|
||||||
osascript -e 'tell app "System Events" to display dialog "Could not migrate the Boot2Docker VM. Please file an issue with the migration logs at https://github.com/docker/machine/issues/new." buttons {"Cancel", "View Migration Logs"} default button 2 cancel button 1 with icon 0 with title "Migration Failed"'
|
/usr/local/bin/docker-machine rm -f $VM &> /dev/null
|
||||||
|
rm -rf ~/.docker/machine/machines/$VM
|
||||||
|
|
||||||
|
# Run migration, opening logs if it fails
|
||||||
|
sudo -u $USER PATH=/Applications/VirtualBox.app/Contents/MacOS/:$PATH /usr/local/bin/docker-machine -D create -d virtualbox --virtualbox-import-boot2docker-vm $BOOT2DOCKER_VM $VM 2>&1 | sed -e '/BEGIN/,/END/d' > /tmp/toolbox-migration-logs.txt
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
open -a TextEdit /tmp/toolbox-migration-logs.txt
|
osascript -e 'tell app "System Events" to display dialog "Boot2Docker VM migrated successfully to a Docker Machine VM named \"default\"" buttons {"Ok"} default button 1'
|
||||||
|
else
|
||||||
|
osascript -e 'tell app "System Events" to display dialog "Could not migrate the Boot2Docker VM. Please file an issue with the migration logs at https://github.com/docker/machine/issues/new." buttons {"Cancel", "View Migration Logs"} default button 2 cancel button 1 with icon 0 with title "Migration Failed"'
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
open -a TextEdit /tmp/toolbox-migration-logs.txt
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Open Applications dir if it exists and is not empty
|
# Open Applications dir if it exists and is not empty
|
||||||
if [ -d /Applications/Docker ] && [ "$(ls -A /Applications/Docker)" ]; then
|
if [ -d /Applications/Docker ] && [ "$(ls -A /Applications/Docker)" ]; then
|
||||||
open /Applications/Docker
|
open /Applications/Docker
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue