|
1 | 1 | #!/usr/bin/env bash
|
2 | 2 |
|
| 3 | +set -aeux -o pipefail |
| 4 | + |
3 | 5 | # Remove distribution-related packages (if present) that would be harmful if kept installed.
|
4 |
| -sudo apt remove docker docker-engine docker.io containerd runc |
| 6 | +for pkg in docker docker-engine docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc |
| 7 | +do |
| 8 | + echo ${pkg} |
| 9 | + installed=$(apt list ${pkg} 2>/dev/null | grep installed | wc -l || true) |
| 10 | + if [[ ${installed} -ge 1 ]] ; then |
| 11 | + echo "Removing ${pkg}" |
| 12 | + sudo apt remove ${pkg} |
| 13 | + fi |
| 14 | +done |
5 | 15 |
|
6 | 16 | # Update apt repositories
|
7 |
| -sudo apt update |
| 17 | +sudo apt update || true |
8 | 18 |
|
9 | 19 | # Add required dependencies
|
10 | 20 | sudo apt install -y \
|
11 |
| - lsb-release \ |
12 |
| - apt-transport-https \ |
13 |
| - ca-certificates \ |
14 |
| - curl \ |
15 |
| - gnupg-agent |
| 21 | + lsb-release \ |
| 22 | + apt-transport-https \ |
| 23 | + ca-certificates \ |
| 24 | + curl \ |
| 25 | + gnupg-agent |
16 | 26 |
|
17 |
| -# ID of current running OS, lowercase |
18 |
| -OS_ID=$(lsb_release -is) |
19 |
| -OS_ID=${OS_ID,,} |
20 |
| -OS_CN=$(lsb_release -cs) |
| 27 | +# IDs of current running OS, lowercase |
| 28 | +OS_DISTRIB_ID=$(lsb_release -is | tr '[:upper:]' '[:lower:]') |
| 29 | +OS_CODENAME=$(lsb_release -cs) |
21 | 30 |
|
22 | 31 | # Add the official docker repository
|
23 | 32 | sudo mkdir -p /etc/apt/keyrings
|
24 |
| -curl -fsSL https://download.docker.com/linux/${OS_ID}/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg |
| 33 | +curl -fsSL https://download.docker.com/linux/${OS_DISTRIB_ID}/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg |
25 | 34 | echo \
|
26 |
| - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/${OS_ID} \ |
27 |
| - ${OS_CN} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
| 35 | + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/${OS_DISTRIB_ID} \ |
| 36 | + ${OS_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
28 | 37 |
|
29 | 38 | # Refresh repositories
|
30 |
| -sudo apt update |
| 39 | +sudo apt update || true |
31 | 40 |
|
32 | 41 | # Install docker-ce from docker repository
|
33 | 42 | sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
34 | 43 |
|
35 | 44 | # Create 'docker' group
|
36 |
| -sudo groupadd docker |
| 45 | +sudo groupadd docker || true |
37 | 46 |
|
38 | 47 | # Add the group 'docker' to your user
|
39 | 48 | sudo usermod -aG docker ${USER}
|
| 49 | + |
| 50 | +set +x |
| 51 | +echo "**************************** Finished. *****************************" |
| 52 | +echo "Please logout, then login back, to ensure 'docker' group membership." |
0 commit comments