initial commit

This commit is contained in:
2026-03-18 03:29:25 +08:00
commit 146c2c5f35
37 changed files with 1445 additions and 0 deletions

119
scripts/docker/install.sh Normal file
View 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 "================================="

View 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."

View 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."

View 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."

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -e
echo "Installing Docker for Alpine..."
apk update
apk add \
docker \
docker-cli-compose

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -e
echo "Installing Docker for Arch-based systems..."
pacman -Sy --noconfirm docker docker-compose

View 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

View 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
View 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

View 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