| garciadeblas | 0bc8752 | 2021-10-20 22:16:17 +0200 | [diff] [blame^] | 1 | #!/bin/bash |
| 2 | # |
| 3 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | # you may not use this file except in compliance with the License. |
| 5 | # You may obtain a copy of the License at |
| 6 | # |
| 7 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | # |
| 9 | # Unless required by applicable law or agreed to in writing, software |
| 10 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | # See the License for the specific language governing permissions and |
| 13 | # limitations under the License. |
| 14 | # |
| 15 | |
| 16 | set +eux |
| 17 | |
| 18 | function install_docker_ce() { |
| 19 | # installs and configures Docker CE |
| 20 | [ -z "${DEBUG_INSTALL}" ] || DEBUG beginning of function |
| 21 | echo "Installing Docker CE ..." |
| 22 | sudo apt-get -qq update |
| 23 | sudo apt-get install -y apt-transport-https ca-certificates software-properties-common |
| 24 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - |
| 25 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" |
| 26 | sudo apt-get -qq update |
| 27 | sudo apt-get install -y docker-ce |
| 28 | # echo "Reconfiguring Docker to use systemd as cgroup driver" |
| 29 | # if [ ! -f /etc/docker/daemon.json ]; then |
| 30 | # sudo bash -c "cat <<EOF > /etc/docker/daemon.json |
| 31 | #{ |
| 32 | # \"exec-opts\": [\"native.cgroupdriver=systemd\"], |
| 33 | # \"log-driver\": \"json-file\", |
| 34 | # \"log-opts\": { |
| 35 | # \"max-size\": \"100m\" |
| 36 | # }, |
| 37 | # \"storage-driver\": \"overlay2\" |
| 38 | #} |
| 39 | #EOF" |
| 40 | # else |
| 41 | # sudo sed -i "s|native.cgroupdriver=cgroupfs|native.cgroupdriver=systemd|" /etc/docker/daemon.json |
| 42 | # fi |
| 43 | echo "Adding user to group 'docker'" |
| 44 | sudo groupadd -f docker |
| 45 | sudo usermod -aG docker $USER |
| 46 | sleep 2 |
| 47 | #sudo systemctl enable docker |
| 48 | #sudo systemctl daemon-reload |
| 49 | #sudo systemctl restart docker |
| 50 | sudo service docker restart |
| 51 | echo "... restarted Docker service" |
| 52 | if [ -n "${DOCKER_PROXY_URL}" ]; then |
| 53 | echo "Configuring docker proxy ..." |
| 54 | if [ -f /etc/docker/daemon.json ]; then |
| 55 | if grep -q registry-mirrors /etc/docker/daemon.json; then |
| 56 | sudo sed -i "s|registry-mirrors.*|registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |" /etc/docker/daemon.json |
| 57 | else |
| 58 | sudo sed -i "s|^{|{\n \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"],|" /etc/docker/daemon.json |
| 59 | fi |
| 60 | else |
| 61 | sudo bash -c "cat << EOF > /etc/docker/daemon.json |
| 62 | { |
| 63 | \"registry-mirrors\": [\"${DOCKER_PROXY_URL}\"] |
| 64 | } |
| 65 | EOF" |
| 66 | fi |
| 67 | #sudo systemctl enable docker |
| 68 | sudo systemctl daemon-reload |
| 69 | #sudo systemctl restart docker |
| 70 | sudo service docker restart |
| 71 | echo "... restarted Docker service again" |
| 72 | fi |
| 73 | [ -z "${DEBUG_INSTALL}" ] || ! echo "File: /etc/docker/daemon.json" || cat /etc/docker/daemon.json |
| 74 | sg docker -c "docker version" || FATAL "Docker installation failed" |
| 75 | echo "... Docker CE installation done" |
| 76 | [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function |
| 77 | return 0 |
| 78 | } |
| 79 | |
| 80 | while getopts ":D:p:-: " o; do |
| 81 | case "${o}" in |
| 82 | D) |
| 83 | OSM_DEVOPS="${OPTARG}" |
| 84 | ;; |
| 85 | p) |
| 86 | DOCKER_PROXY_URL="${OPTARG}" |
| 87 | ;; |
| 88 | -) |
| 89 | [ "${OPTARG}" == "debug" ] && DEBUG_INSTALL="y" && continue |
| 90 | echo -e "Invalid option: '--$OPTARG'\n" >&2 |
| 91 | exit 1 |
| 92 | ;; |
| 93 | :) |
| 94 | echo "Option -$OPTARG requires an argument" >&2 |
| 95 | exit 1 |
| 96 | ;; |
| 97 | \?) |
| 98 | echo -e "Invalid option: '-$OPTARG'\n" >&2 |
| 99 | exit 1 |
| 100 | ;; |
| 101 | *) |
| 102 | exit 1 |
| 103 | ;; |
| 104 | esac |
| 105 | done |
| 106 | |
| 107 | source $OSM_DEVOPS/common/logging |
| 108 | |
| 109 | echo "DEBUG_INSTALL=$DEBUG_INSTALL" |
| 110 | echo "DOCKER_PROXY_URL=$DOCKER_PROXY_URL" |
| 111 | echo "USER=$USER" |
| 112 | |
| 113 | install_docker_ce |
| 114 | |