#!/bin/bash function start_docker() { local starttime local endtime update-alternatives --set iptables /usr/sbin/iptables-legacy || echo "Fails adjust iptables" update-alternatives --set ip6tables /usr/sbin/iptables-legacy || echo "Fails adjust ip6tables" echo "Starting docker." dockerd 2> /dev/null & DOCKER_PID=$! echo "Waiting for docker to initialize..." starttime="$(date +%s)" endtime="$(date +%s)" until docker info >/dev/null 2>&1; do if [[ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]]; then sleep 1 endtime=$(date +%s) else echo "Timeout while waiting for docker to come up" exit 1 fi done echo "Docker was initialized" } function stop_docker() { local starttime local endtime echo "Stopping in container docker..." if [ "$DOCKER_PID" -gt 0 ] && kill -0 "$DOCKER_PID" 2> /dev/null; then starttime="$(date +%s)" endtime="$(date +%s)" # Now wait for it to die kill "$DOCKER_PID" while kill -0 "$DOCKER_PID" 2> /dev/null; do if [[ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]]; then sleep 1 endtime=$(date +%s) else echo "Timeout while waiting for container docker to die" exit 1 fi done else echo "Your host might have been left with unreleased resources" fi } function cleanup_lastboot() { if [[ -f /workspaces/test_supervisor/config.json ]]; then echo "Cleaning up last boot" cp /workspaces/test_supervisor/config.json /tmp/config.json jq -rM 'del(.last_boot)' /tmp/config.json > /workspaces/test_supervisor/config.json rm /tmp/config.json fi }