lsemenenko gist felülvizsgálása . Revízióhoz ugrás
1 file changed, 3 insertions, 4 deletions
install_docker.sh
| @@ -27,10 +27,9 @@ if [[ ! -f /usr/share/keyrings/docker-archive-keyring.gpg ]]; then | |||
| 27 | 27 | | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
| 28 | 28 | fi | |
| 29 | 29 | ||
| 30 | - | lsb_release -cs | read -r codename | |
| 31 | - | echo \ | |
| 32 | - | "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ | |
| 33 | - | https://download.docker.com/linux/ubuntu ${codename} stable" \ | |
| 30 | + | codename="$(lsb_release -cs)" | |
| 31 | + | echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ | |
| 32 | + | https://download.docker.com/linux/ubuntu ${codename} stable" \ | |
| 34 | 33 | > /etc/apt/sources.list.d/docker.list | |
| 35 | 34 | ||
| 36 | 35 | retry "apt-get update -y" "apt-get update (Docker repo)" | |
lsemenenko gist felülvizsgálása . Revízióhoz ugrás
1 file changed, 47 insertions
install_docker.sh(fájl létrehozva)
| @@ -0,0 +1,47 @@ | |||
| 1 | + | #!/usr/bin/env bash | |
| 2 | + | set -euo pipefail | |
| 3 | + | ||
| 4 | + | export DEBIAN_FRONTEND=noninteractive | |
| 5 | + | ||
| 6 | + | # -------- helpers -------- | |
| 7 | + | retry() { | |
| 8 | + | local cmd="$1" | |
| 9 | + | local what="$2" | |
| 10 | + | until eval "$cmd"; do | |
| 11 | + | echo "$what failed, retrying in 5 seconds…" | |
| 12 | + | sleep 5 | |
| 13 | + | done | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | # -------- remove any old Docker bits -------- | |
| 17 | + | retry "apt-get remove -y docker.io docker-doc docker-compose containerd runc || true" "apt-get remove" | |
| 18 | + | ||
| 19 | + | # -------- base package refresh -------- | |
| 20 | + | retry "apt-get update -y" "apt-get update" | |
| 21 | + | retry "apt-get install -y apt-transport-https ca-certificates curl software-properties-common" \ | |
| 22 | + | "install prerequisites" | |
| 23 | + | ||
| 24 | + | # -------- add Docker repo & key -------- | |
| 25 | + | if [[ ! -f /usr/share/keyrings/docker-archive-keyring.gpg ]]; then | |
| 26 | + | curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | |
| 27 | + | | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg | |
| 28 | + | fi | |
| 29 | + | ||
| 30 | + | lsb_release -cs | read -r codename | |
| 31 | + | echo \ | |
| 32 | + | "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \ | |
| 33 | + | https://download.docker.com/linux/ubuntu ${codename} stable" \ | |
| 34 | + | > /etc/apt/sources.list.d/docker.list | |
| 35 | + | ||
| 36 | + | retry "apt-get update -y" "apt-get update (Docker repo)" | |
| 37 | + | ||
| 38 | + | # -------- install Docker engine & plugins -------- | |
| 39 | + | retry "apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin" \ | |
| 40 | + | "install Docker" | |
| 41 | + | ||
| 42 | + | # -------- enable & start -------- | |
| 43 | + | systemctl enable --now docker | |
| 44 | + | ||
| 45 | + | # -------- quick validation -------- | |
| 46 | + | docker run --rm hello-world | |
| 47 | + | echo "✅ Docker installed and working." | |