Merge pull request #190 from beckn/docker-issue
Add OS-specific Docker installation
This commit is contained in:
@@ -49,8 +49,10 @@ Docker compose and docker are extensively used in the installation and running o
|
|||||||
|
|
||||||
### Overall Pre-requisites
|
### Overall Pre-requisites
|
||||||
|
|
||||||
|
- OS supported and test Beckn-ONIX installer are Ubuntu (20.04, 22.04 and 24.04), Debian (12), Amazon Linux 2, Windows with WSL support and MacOS.
|
||||||
- Atleast four virtual servers (EC2 instances) configured on the cloud provider with administrator login (e.g. ssh access) to them.
|
- Atleast four virtual servers (EC2 instances) configured on the cloud provider with administrator login (e.g. ssh access) to them.
|
||||||
- Access to domain name management with ability to create domain-name/subdomains for each of the components.
|
- Access to domain name management with ability to create domain-name/subdomains for each of the components.
|
||||||
|
- Latest docker version.
|
||||||
- Run the following two commands on all machines where the script is being run for the first time. Login to a new shell for the command to take effect and continue with the installation. Not doing so will result in docker permisssion error
|
- Run the following two commands on all machines where the script is being run for the first time. Login to a new shell for the command to take effect and continue with the installation. Not doing so will result in docker permisssion error
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -19,42 +19,49 @@ 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/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
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/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/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
|
||||||
|
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
|
sudo systemctl enable docker.service
|
||||||
if [ $? -eq 0 ]; then
|
sudo systemctl restart docker.service
|
||||||
sleep 10
|
|
||||||
sudo systemctl enable docker.service
|
|
||||||
sudo systemctl restart docker.service
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
echo "Docker is already installed."
|
echo "Docker is already installed."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if ! dpkg -l | grep -q "^ii $1 "; then
|
if ! dpkg -l | grep -q "^ii $1 "; then
|
||||||
sudo apt-get update >/dev/null 2>&1
|
sudo apt-get update >/dev/null 2>&1
|
||||||
sudo apt-get install -y $1 > /dev/null 2>&1
|
sudo apt-get install -y $1 >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
echo "$1 is already installed."
|
echo "$1 is already installed."
|
||||||
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
|
||||||
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
if [ -f /etc/centos-release ]; then
|
||||||
# Install Docker
|
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
||||||
sudo yum install -y docker >/dev/null 2>&1
|
elif [ -f /etc/redhat-release ]; then
|
||||||
sudo systemctl enable docker.service
|
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
|
||||||
sudo systemctl start docker.service
|
elif grep -q "Amazon Linux release 2" /etc/system-release; then
|
||||||
|
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
|
else
|
||||||
echo "$1 is already installed."
|
if ! amazon-linux-extras list | grep -q "$1"; then
|
||||||
|
sudo amazon-linux-extras install $1 -y >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user