Fix containerd configuration to be applied only if there is docker proxy
[osm/devops.git] / installers / install_docker_ce.sh
index 90035df..5c0cc6d 100755 (executable)
@@ -22,7 +22,7 @@ function install_docker_ce() {
     sudo apt-get -qq update
     sudo apt-get install -y apt-transport-https ca-certificates software-properties-common
     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
-    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+    sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
     sudo apt-get -qq update
     sudo apt-get install -y docker-ce
 #    echo "Reconfiguring Docker to use systemd as cgroup driver"
@@ -89,6 +89,16 @@ EOF"
         sudo service docker restart
         echo "... restarted Docker service again"
     fi
+
+    if [ -n "${DOCKER_PROXY_URL}" ]; then
+        echo "Configuring containerd"
+        sudo mv /etc/containerd/config.toml /etc/containerd/config.toml.orig 2>/dev/null
+        sudo bash -c "containerd config default > /etc/containerd/config.toml"
+        sudo sed -i "s#\[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors\]#\[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors\]\n        \[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"docker.io\"\]\n          endpoint = \[\"${DOCKER_PROXY_URL}\"\]\n        \[plugins.\"io.containerd.grpc.v1.cri\".registry.mirrors.\"registry.hub.docker.com\"]\n          endpoint = \[\"${DOCKER_PROXY_URL}\"]#" /etc/containerd/config.toml
+        sudo diff /etc/containerd/config.toml.orig /etc/containerd/config.toml
+        sudo service containerd restart
+    fi
+
     [ -z "${DEBUG_INSTALL}" ] || ! echo "File: /etc/docker/daemon.json" || cat /etc/docker/daemon.json
     sg docker -c "docker version" || FATAL "Docker installation failed"
     echo "... Docker CE installation done"