Add OS-specific Docker installation

This commit is contained in:
prasad-takale-eminds
2024-08-26 14:18:28 +05:30
parent 8f52762115
commit 7fe80c2c12

View File

@@ -19,20 +19,20 @@ install_package() {
if [ -x "$(command -v apt-get)" ]; then if [ -x "$(command -v apt-get)" ]; then
# APT (Debian/Ubuntu) # APT (Debian/Ubuntu)
if [ "$1" == "docker" ]; then if [ "$1" == "docker" ]; then
docker > /dev/null 2>&1 if ! docker --version > /dev/null 2>&1; then
if [ $? -ne 0 ]; then if [ -f /etc/debian_version ]; then
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
else
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
fi
sudo apt update >/dev/null 2>&1 sudo apt update >/dev/null 2>&1
sudo apt install -y docker-ce docker-ce-cli containerd.io >/dev/null 2>&1 sudo apt install -y docker-ce docker-ce-cli containerd.io >/dev/null 2>&1
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
source ~/.bashrc source ~/.bashrc
command_exists docker
if [ $? -eq 0 ]; then
sleep 10
sudo systemctl enable docker.service sudo systemctl enable docker.service
sudo systemctl restart docker.service sudo systemctl restart docker.service
fi
else else
echo "Docker is already installed." echo "Docker is already installed."
fi fi
@@ -45,16 +45,23 @@ install_package() {
fi fi
fi fi
elif [ -x "$(command -v yum)" ]; then elif [ -x "$(command -v yum)" ]; then
# YUM (Red Hat/CentOS) # YUM (Red Hat/CentOS/Amazon Linux)
if [ "$1" == "docker" ]; then if [ "$1" == "docker" ]; then
if ! rpm -qa | grep -q docker-ce; then if ! docker --version > /dev/null 2>&1; then
if [ -f /etc/centos-release ]; then
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Install Docker elif [ -f /etc/redhat-release ]; then
sudo yum install -y docker >/dev/null 2>&1 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo systemctl enable docker.service elif grep -q "Amazon Linux release 2" /etc/system-release; then
sudo systemctl start docker.service sudo amazon-linux-extras install docker -y
elif grep -q "Amazon Linux release" /etc/system-release; then
sudo yum install -y docker
fi
sudo yum install -y docker-ce docker-ce-cli containerd.io >/dev/null 2>&1
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
source ~/.bashrc source ~/.bashrc
sudo systemctl enable docker.service
sudo systemctl restart docker.service
else else
echo "Docker is already installed." echo "Docker is already installed."
fi fi
@@ -66,19 +73,32 @@ install_package() {
fi fi
fi fi
elif [ -x "$(command -v amazon-linux-extras)" ]; then elif [ -x "$(command -v amazon-linux-extras)" ]; then
# Amazon Linux 2 # Amazon Linux 2 specific
if ! amazon-linux-extras list | grep -q "^$1 "; then if [ "$1" == "docker" ]; then
sudo amazon-linux-extras install $1 >/dev/null 2>&1 if ! docker --version > /dev/null 2>&1; then
sudo amazon-linux-extras install docker -y >/dev/null 2>&1
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo usermod -aG docker $USER
source ~/.bashrc
else
echo "Docker is already installed."
fi
else
if ! amazon-linux-extras list | grep -q "$1"; then
sudo amazon-linux-extras install $1 -y >/dev/null 2>&1
else else
echo "$1 is already installed." echo "$1 is already installed."
fi fi
fi
else else
echo "${RED}Unsupported package manager. Please install $1 manually.${NC}" echo "Unsupported package manager. Please install $1 manually."
exit 1 exit 1
fi fi
} }
remove_package(){ remove_package(){
if [ -x "$(command -v apt-get)" ]; then if [ -x "$(command -v apt-get)" ]; then
# APT (Debian/Ubuntu) # APT (Debian/Ubuntu)