initial commit
This commit is contained in:
119
scripts/docker/install.sh
Normal file
119
scripts/docker/install.sh
Normal file
@@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "================================="
|
||||
echo " Docker Installation"
|
||||
echo "================================="
|
||||
|
||||
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Detect OS
|
||||
if [[ -f /etc/os-release ]]; then
|
||||
. /etc/os-release
|
||||
else
|
||||
echo "Cannot detect operating system."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Detected OS: $ID"
|
||||
|
||||
echo "Running Docker installer for this distro..."
|
||||
|
||||
case "$ID" in
|
||||
|
||||
ubuntu)
|
||||
bash "$BASE_DIR/os/ubuntu.sh"
|
||||
;;
|
||||
|
||||
debian)
|
||||
bash "$BASE_DIR/os/debian.sh"
|
||||
;;
|
||||
|
||||
fedora|centos|rocky|almalinux|rhel)
|
||||
bash "$BASE_DIR/os/rhel.sh"
|
||||
;;
|
||||
|
||||
arch|manjaro)
|
||||
bash "$BASE_DIR/os/arch.sh"
|
||||
;;
|
||||
|
||||
alpine)
|
||||
bash "$BASE_DIR/os/alpine.sh"
|
||||
;;
|
||||
|
||||
opensuse*|suse|opensuse-leap|opensuse-tumbleweed)
|
||||
bash "$BASE_DIR/os/opensuse.sh"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unsupported distribution: $ID"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
echo "Docker installation completed successfully."
|
||||
|
||||
echo "================================="
|
||||
echo " Mirror Configuration"
|
||||
echo "================================="
|
||||
|
||||
read -rp "Configure Docker mirror? (y/n): " DOCKER_MIRROR
|
||||
|
||||
if [[ "$DOCKER_MIRROR" == "y" ]]; then
|
||||
|
||||
echo "Select Docker mirror provider:"
|
||||
echo "1) Liara"
|
||||
echo "2) ArvanCloud"
|
||||
echo "3) Runflare"
|
||||
|
||||
read -rp "Choice [1-3]: " DM
|
||||
|
||||
case "$DM" in
|
||||
1)
|
||||
echo "Applying Liara Docker mirror..."
|
||||
bash "$BASE_DIR/mirrors/liara.sh"
|
||||
;;
|
||||
2)
|
||||
echo "Applying ArvanCloud Docker mirror..."
|
||||
bash "$BASE_DIR/mirrors/arvancloud.sh"
|
||||
;;
|
||||
3)
|
||||
echo "Applying Runflare Docker mirror..."
|
||||
bash "$BASE_DIR/mirrors/runflare.sh"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice. Skipping mirror configuration."
|
||||
;;
|
||||
esac
|
||||
|
||||
else
|
||||
echo "Skipping Docker mirror configuration."
|
||||
fi
|
||||
|
||||
echo "================================="
|
||||
echo "Starting Docker service..."
|
||||
|
||||
systemctl enable docker
|
||||
systemctl restart docker
|
||||
|
||||
if [[ -n "$SUDO_USER" ]]; then
|
||||
echo "Adding $SUDO_USER to docker group..."
|
||||
usermod -aG docker "$SUDO_USER" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
echo "================================="
|
||||
echo "Verifying Docker installation..."
|
||||
|
||||
docker --version
|
||||
|
||||
if systemctl is-active --quiet docker; then
|
||||
echo "Docker service is running."
|
||||
else
|
||||
echo "Docker service is NOT running."
|
||||
fi
|
||||
|
||||
echo "================================="
|
||||
echo "Docker setup finished successfully"
|
||||
echo "================================="
|
||||
30
scripts/docker/mirrors/arvancloud.sh
Normal file
30
scripts/docker/mirrors/arvancloud.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "============================================"
|
||||
echo "=== Configuring ArvanCloud Docker mirror ==="
|
||||
echo "============================================"
|
||||
|
||||
mkdir -p /etc/docker
|
||||
|
||||
if [[ -f /etc/docker/daemon.json ]]; then
|
||||
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
|
||||
echo "Backup created: /etc/docker/daemon.json.bak"
|
||||
fi
|
||||
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"insecure-registries": ["https://docker.arvancloud.ir"],
|
||||
"registry-mirrors": ["https://docker.arvancloud.ir"]
|
||||
}
|
||||
EOF
|
||||
|
||||
echo "Docker mirror configured."
|
||||
|
||||
docker logout || true
|
||||
|
||||
systemctl daemon-reexec || true
|
||||
systemctl restart docker
|
||||
|
||||
echo "ArvanCloud Docker mirror applied."
|
||||
27
scripts/docker/mirrors/liara.sh
Normal file
27
scripts/docker/mirrors/liara.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "======================================="
|
||||
echo "=== Configuring Liara Docker mirror ==="
|
||||
echo "======================================="
|
||||
|
||||
mkdir -p /etc/docker
|
||||
|
||||
if [[ -f /etc/docker/daemon.json ]]; then
|
||||
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
|
||||
echo "Backup created: /etc/docker/daemon.json.bak"
|
||||
fi
|
||||
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://docker-mirror.liara.ir"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
|
||||
echo "Liara Docker mirror applied."
|
||||
27
scripts/docker/mirrors/runflare.sh
Normal file
27
scripts/docker/mirrors/runflare.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "=========================================="
|
||||
echo "=== Configuring Runflare Docker mirror ==="
|
||||
echo "=========================================="
|
||||
|
||||
mkdir -p /etc/docker
|
||||
|
||||
if [[ -f /etc/docker/daemon.json ]]; then
|
||||
cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
|
||||
echo "Backup created: /etc/docker/daemon.json.bak"
|
||||
fi
|
||||
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"registry-mirrors": [
|
||||
"https://mirror-docker.runflare.com"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
|
||||
echo "Runflare Docker mirror applied."
|
||||
10
scripts/docker/os/alpine.sh
Normal file
10
scripts/docker/os/alpine.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for Alpine..."
|
||||
|
||||
apk update
|
||||
|
||||
apk add \
|
||||
docker \
|
||||
docker-cli-compose
|
||||
6
scripts/docker/os/arch.sh
Normal file
6
scripts/docker/os/arch.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for Arch-based systems..."
|
||||
|
||||
pacman -Sy --noconfirm docker docker-compose
|
||||
29
scripts/docker/os/debian.sh
Normal file
29
scripts/docker/os/debian.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for Debian..."
|
||||
|
||||
apt-get update -y
|
||||
apt-get install -y ca-certificates curl gnupg lsb-release
|
||||
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
|
||||
curl -fsSL https://archive.ito.gov.ir/docker-ce/linux/debian/gpg \
|
||||
-o /etc/apt/keyrings/docker.asc
|
||||
|
||||
chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
|
||||
https://archive.ito.gov.ir/docker-ce/linux/debian \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||
| tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
apt-get update -y
|
||||
|
||||
apt-get install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
10
scripts/docker/os/opensuse.sh
Normal file
10
scripts/docker/os/opensuse.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for OpenSUSE..."
|
||||
|
||||
zypper refresh
|
||||
|
||||
zypper install -y \
|
||||
docker \
|
||||
docker-compose
|
||||
16
scripts/docker/os/rhel.sh
Normal file
16
scripts/docker/os/rhel.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for RHEL-based systems..."
|
||||
|
||||
dnf install -y dnf-plugins-core
|
||||
|
||||
dnf config-manager --add-repo \
|
||||
https://archive.ito.gov.ir/docker-ce/linux/centos/docker-ce.repo
|
||||
|
||||
dnf install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
29
scripts/docker/os/ubuntu.sh
Normal file
29
scripts/docker/os/ubuntu.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Installing Docker for Ubuntu..."
|
||||
|
||||
apt-get update -y
|
||||
apt-get install -y ca-certificates curl gnupg lsb-release
|
||||
|
||||
install -m 0755 -d /etc/apt/keyrings
|
||||
|
||||
curl -fsSL https://archive.ito.gov.ir/docker-ce/linux/ubuntu/gpg \
|
||||
-o /etc/apt/keyrings/docker.asc
|
||||
|
||||
chmod a+r /etc/apt/keyrings/docker.asc
|
||||
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
|
||||
https://archive.ito.gov.ir/docker-ce/linux/ubuntu \
|
||||
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||
| tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
apt-get update -y
|
||||
|
||||
apt-get install -y \
|
||||
docker-ce \
|
||||
docker-ce-cli \
|
||||
containerd.io \
|
||||
docker-buildx-plugin \
|
||||
docker-compose-plugin
|
||||
Reference in New Issue
Block a user