Repository navigation
Expand file tree
/
Copy pathinstall-docker
More file actions
executable file
·101 lines (81 loc) · 2.63 KB
/
Copy pathinstall-docker
File metadata and controls
executable file
·101 lines (81 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#!/usr/bin/env sh
set -eu
. /etc/os-release
cat /etc/os-release
echo
echo ============================================
echo "$ID | ${VERSION_ID:- - } | ${PRETTY_NAME:- - }"
echo "$ID | ${VERSION_ID:- - } | ${PRETTY_NAME:- - }"
echo "$ID | ${VERSION_ID:- - } | ${PRETTY_NAME:- - }"
echo "$ID | ${VERSION_ID:- - } | ${PRETTY_NAME:- - }"
echo ============================================
echo
# SUDO is only set, if sudo is actually installed!
SUDO=$(command -v sudo || true)
if [ -f /.dockerenv ] || [ -f /run/.containerenv ]; then
PACKAGES="docker-ce-cli docker-compose"
INSIDE_CONTAINER=1
else
PACKAGES="docker-ce docker-ce-cli containerd.io docker-compose"
INSIDE_CONTAINER=0
fi
main() {
install_docker
install_dive
}
install_dive() {
DL=$(
curl -fsSL -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/wagoodman/dive/releases/latest |
jq --raw-output ".assets[] | select(.name | contains(\"linux_amd64.tar.gz\")) .browser_download_url"
)
curl -fsSL "${DL}" | $SUDO tar --directory=/usr/local/bin -xzv dive
}
install_docker() {
# evaluates the package manager
PKG_MANAGER_PATH=$({ command -v apk || command -v apt-get || command -v dnf || command -v yum || command -v zypper || command -v pacman || command -v eopkg-cli; })
# /usr/bin/dnf -> dnf
PKG_MANAGER=${PKG_MANAGER_PATH##*/}
case "$PKG_MANAGER" in
apk)
PACKAGES=$(echo $PACKAGES | sed -r -e 's/-ce|[.]io//g')
$SUDO apk --no-cache add ${PACKAGES}
;;
apt-get)
$SUDO apt-get update
$SUDO apt-get -y install apt-transport-https ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/${ID}/gpg | $SUDO gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/${ID} ${VERSION_CODENAME} stable" | $SUDO tee /etc/apt/sources.list.d/docker.list >/dev/null
$SUDO apt-get update
$SUDO apt-get -y install ${PACKAGES}
;;
dnf)
$SUDO dnf -y install dnf-plugins-core
$SUDO dnf -y config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
$SUDO dnf -y install ${PACKAGES}
;;
pacman)
sudo pacman -Sy --noconfirm $PACKAGES
;;
zypper)
sudo zypper install -y $PACKAGES
;;
*)
echo "Fatal Error: No supported package manager found!"
exit 1
;;
esac
if [ ${INSIDE_CONTAINER} = 0 ]; then
# enable buildkit engine
mkdir -p /etc/docker/
sudo tee /etc/docker/daemon.json >/dev/null <<-EOF
{
"features": {
"buildkit": true
}
}
EOF
$SUDO systemctl enable --now docker
fi
! getent group docker >/dev/null || $SUDO usermod -aG docker $(whoami)
}
main "$@"