| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| set -euo pipefail |
| IFS=$'\n\t' |
| |
| |
| |
| |
| |
| |
| |
| |
| MIGRATOR=/usr/bin/v1.10-migrator-local |
| STORAGE_FILE=/etc/sysconfig/docker-storage |
| GRAPH=/var/lib/docker |
| |
| main() { |
| |
| |
| if [[ -n ${container-} ]]; then |
| |
| if [[ ! -d /host ]]; then |
| echo "ERROR: Running inside a container, but /host not mounted." >&2 |
| exit 1 |
| fi |
| |
| cp "$MIGRATOR" /host/tmp |
| MIGRATOR="chroot /host /tmp/$(basename $MIGRATOR)" |
| STORAGE_FILE=/host${STORAGE_FILE} |
| fi |
| |
| if [ ! -d "$GRAPH" ]; then |
| echo "ERROR: Cannot find docker root dir at \"$GRAPH\"." >&2 |
| exit 1 |
| fi |
| |
| |
| local storage_opts= |
| if [ -r "$STORAGE_FILE" ] && grep -q -E '^DOCKER_STORAGE_OPTIONS\s*=' "$STORAGE_FILE"; then |
| storage_opts=$(sed -n -e 's/^DOCKER_STORAGE_OPTIONS\s*=\s*// p' "$STORAGE_FILE") |
| storage_opts=${storage_opts#\"} |
| storage_opts=${storage_opts%\"} |
| fi |
| |
| CMD="$MIGRATOR --graph $GRAPH $storage_opts" |
| echo "RUNNING: $CMD" |
| eval $CMD |
| } |
| |
| main "$@" |