refactor(docker): simplify installation and remove version pinning
- Remove hardcoded Docker version constraints (27.0 → latest) - Use official Docker install script (get.docker.com) instead of rancher URLs - Simplify installation logic by removing nested version fallback checks - Consolidate OS-specific installation methods and improve Arch Linux upgrade handling
This commit is contained in:
parent
efcd5e7dbf
commit
534b8be8d0
3 changed files with 62 additions and 79 deletions
|
|
@ -11,11 +11,8 @@ class InstallDocker
|
||||||
{
|
{
|
||||||
use AsAction;
|
use AsAction;
|
||||||
|
|
||||||
private string $dockerVersion;
|
|
||||||
|
|
||||||
public function handle(Server $server)
|
public function handle(Server $server)
|
||||||
{
|
{
|
||||||
$this->dockerVersion = config('constants.docker.minimum_required_version');
|
|
||||||
$supported_os_type = $server->validateOS();
|
$supported_os_type = $server->validateOS();
|
||||||
if (! $supported_os_type) {
|
if (! $supported_os_type) {
|
||||||
throw new \Exception('Server OS type is not supported for automated installation. Please install Docker manually before continuing: <a target="_blank" class="underline" href="https://coolify.io/docs/installation#manually">documentation</a>.');
|
throw new \Exception('Server OS type is not supported for automated installation. Please install Docker manually before continuing: <a target="_blank" class="underline" href="https://coolify.io/docs/installation#manually">documentation</a>.');
|
||||||
|
|
@ -118,7 +115,7 @@ public function handle(Server $server)
|
||||||
|
|
||||||
private function getDebianDockerInstallCommand(): string
|
private function getDebianDockerInstallCommand(): string
|
||||||
{
|
{
|
||||||
return "curl --max-time 300 --retry 3 https://releases.rancher.com/install-docker/{$this->dockerVersion}.sh | sh || curl --max-time 300 --retry 3 https://get.docker.com | sh -s -- --version {$this->dockerVersion} || (".
|
return 'curl -fsSL https://get.docker.com | sh || ('.
|
||||||
'. /etc/os-release && '.
|
'. /etc/os-release && '.
|
||||||
'install -m 0755 -d /etc/apt/keyrings && '.
|
'install -m 0755 -d /etc/apt/keyrings && '.
|
||||||
'curl -fsSL https://download.docker.com/linux/${ID}/gpg -o /etc/apt/keyrings/docker.asc && '.
|
'curl -fsSL https://download.docker.com/linux/${ID}/gpg -o /etc/apt/keyrings/docker.asc && '.
|
||||||
|
|
@ -131,7 +128,7 @@ private function getDebianDockerInstallCommand(): string
|
||||||
|
|
||||||
private function getRhelDockerInstallCommand(): string
|
private function getRhelDockerInstallCommand(): string
|
||||||
{
|
{
|
||||||
return "curl https://releases.rancher.com/install-docker/{$this->dockerVersion}.sh | sh || curl https://get.docker.com | sh -s -- --version {$this->dockerVersion} || (".
|
return 'curl -fsSL https://get.docker.com | sh || ('.
|
||||||
'dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && '.
|
'dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && '.
|
||||||
'dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && '.
|
'dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && '.
|
||||||
'systemctl start docker && '.
|
'systemctl start docker && '.
|
||||||
|
|
@ -141,7 +138,7 @@ private function getRhelDockerInstallCommand(): string
|
||||||
|
|
||||||
private function getSuseDockerInstallCommand(): string
|
private function getSuseDockerInstallCommand(): string
|
||||||
{
|
{
|
||||||
return "curl https://releases.rancher.com/install-docker/{$this->dockerVersion}.sh | sh || curl https://get.docker.com | sh -s -- --version {$this->dockerVersion} || (".
|
return 'curl -fsSL https://get.docker.com | sh || ('.
|
||||||
'zypper addrepo https://download.docker.com/linux/sles/docker-ce.repo && '.
|
'zypper addrepo https://download.docker.com/linux/sles/docker-ce.repo && '.
|
||||||
'zypper refresh && '.
|
'zypper refresh && '.
|
||||||
'zypper install -y --no-confirm docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && '.
|
'zypper install -y --no-confirm docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && '.
|
||||||
|
|
@ -152,10 +149,6 @@ private function getSuseDockerInstallCommand(): string
|
||||||
|
|
||||||
private function getArchDockerInstallCommand(): string
|
private function getArchDockerInstallCommand(): string
|
||||||
{
|
{
|
||||||
// Use -Syu to perform full system upgrade before installing Docker
|
|
||||||
// Partial upgrades (-Sy without -u) are discouraged on Arch Linux
|
|
||||||
// as they can lead to broken dependencies and system instability
|
|
||||||
// Use --needed to skip reinstalling packages that are already up-to-date (idempotent)
|
|
||||||
return 'pacman -Syu --noconfirm --needed docker docker-compose && '.
|
return 'pacman -Syu --noconfirm --needed docker docker-compose && '.
|
||||||
'systemctl enable docker.service && '.
|
'systemctl enable docker.service && '.
|
||||||
'systemctl start docker.service';
|
'systemctl start docker.service';
|
||||||
|
|
@ -163,6 +156,6 @@ private function getArchDockerInstallCommand(): string
|
||||||
|
|
||||||
private function getGenericDockerInstallCommand(): string
|
private function getGenericDockerInstallCommand(): string
|
||||||
{
|
{
|
||||||
return "curl --max-time 300 --retry 3 https://releases.rancher.com/install-docker/{$this->dockerVersion}.sh | sh || curl --max-time 300 --retry 3 https://get.docker.com | sh -s -- --version {$this->dockerVersion}";
|
return 'curl -fsSL https://get.docker.com | sh';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ DATE=$(date +"%Y%m%d-%H%M%S")
|
||||||
|
|
||||||
OS_TYPE=$(grep -w "ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"')
|
OS_TYPE=$(grep -w "ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"')
|
||||||
ENV_FILE="/data/coolify/source/.env"
|
ENV_FILE="/data/coolify/source/.env"
|
||||||
DOCKER_VERSION="27.0"
|
DOCKER_VERSION="latest"
|
||||||
# TODO: Ask for a user
|
# TODO: Ask for a user
|
||||||
CURRENT_USER=$USER
|
CURRENT_USER=$USER
|
||||||
|
|
||||||
|
|
@ -499,13 +499,10 @@ fi
|
||||||
|
|
||||||
install_docker() {
|
install_docker() {
|
||||||
set +e
|
set +e
|
||||||
curl -s https://releases.rancher.com/install-docker/${DOCKER_VERSION}.sh | sh 2>&1 || true
|
curl -fsSL https://get.docker.com | sh 2>&1 || true
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
curl -s https://get.docker.com | sh -s -- --version ${DOCKER_VERSION} 2>&1
|
echo "Automated Docker installation failed. Trying manual installation."
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
install_docker_manually
|
||||||
echo "Automated Docker installation failed. Trying manual installation."
|
|
||||||
install_docker_manually
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
}
|
}
|
||||||
|
|
@ -548,16 +545,6 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Docker is not installed. Installing Docker. It may take a while."
|
echo " - Docker is not installed. Installing Docker. It may take a while."
|
||||||
getAJoke
|
getAJoke
|
||||||
case "$OS_TYPE" in
|
case "$OS_TYPE" in
|
||||||
"almalinux")
|
|
||||||
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1
|
|
||||||
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
|
||||||
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
systemctl start docker >/dev/null 2>&1
|
|
||||||
systemctl enable docker >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"alpine" | "postmarketos")
|
"alpine" | "postmarketos")
|
||||||
apk add docker docker-cli-compose >/dev/null 2>&1
|
apk add docker docker-cli-compose >/dev/null 2>&1
|
||||||
rc-update add docker default >/dev/null 2>&1
|
rc-update add docker default >/dev/null 2>&1
|
||||||
|
|
@ -569,8 +556,9 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"arch")
|
"arch")
|
||||||
pacman -Sy docker docker-compose --noconfirm >/dev/null 2>&1
|
pacman -Syu --noconfirm --needed docker docker-compose >/dev/null 2>&1
|
||||||
systemctl enable docker.service >/dev/null 2>&1
|
systemctl enable docker.service >/dev/null 2>&1
|
||||||
|
systemctl start docker.service >/dev/null 2>&1
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Failed to install Docker with pacman. Try to install it manually."
|
echo " - Failed to install Docker with pacman. Try to install it manually."
|
||||||
echo " Please visit https://wiki.archlinux.org/title/docker for more information."
|
echo " Please visit https://wiki.archlinux.org/title/docker for more information."
|
||||||
|
|
@ -581,7 +569,7 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
dnf install docker -y >/dev/null 2>&1
|
dnf install docker -y >/dev/null 2>&1
|
||||||
DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
|
DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
|
||||||
mkdir -p $DOCKER_CONFIG/cli-plugins >/dev/null 2>&1
|
mkdir -p $DOCKER_CONFIG/cli-plugins >/dev/null 2>&1
|
||||||
curl -sL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
curl -fsSL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
||||||
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
||||||
systemctl start docker >/dev/null 2>&1
|
systemctl start docker >/dev/null 2>&1
|
||||||
systemctl enable docker >/dev/null 2>&1
|
systemctl enable docker >/dev/null 2>&1
|
||||||
|
|
@ -591,34 +579,28 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"centos" | "fedora" | "rhel" | "tencentos")
|
"almalinux" | "tencentos")
|
||||||
if [ -x "$(command -v dnf5)" ]; then
|
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1
|
||||||
# dnf5 is available
|
|
||||||
dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo --overwrite >/dev/null 2>&1
|
|
||||||
else
|
|
||||||
# dnf5 is not available, use dnf
|
|
||||||
dnf config-manager --add-repo=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
||||||
|
systemctl start docker >/dev/null 2>&1
|
||||||
|
systemctl enable docker >/dev/null 2>&1
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
systemctl start docker >/dev/null 2>&1
|
|
||||||
systemctl enable docker >/dev/null 2>&1
|
|
||||||
;;
|
;;
|
||||||
"ubuntu" | "debian" | "raspbian")
|
"ubuntu" | "debian" | "raspbian" | "centos" | "fedora" | "rhel" | "sles")
|
||||||
install_docker
|
install_docker
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Automated Docker installation failed. Trying manual installation."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
install_docker_manually
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
install_docker
|
install_docker
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Automated Docker installation failed. Trying manual installation."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
install_docker_manually
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -627,6 +609,19 @@ else
|
||||||
echo " - Docker is installed."
|
echo " - Docker is installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Verify minimum Docker version
|
||||||
|
MIN_DOCKER_VERSION=24
|
||||||
|
INSTALLED_DOCKER_VERSION=$(docker version --format '{{.Server.Version}}' 2>/dev/null | cut -d. -f1)
|
||||||
|
if [ -z "$INSTALLED_DOCKER_VERSION" ]; then
|
||||||
|
echo " - WARNING: Could not determine Docker version. Please ensure Docker $MIN_DOCKER_VERSION+ is installed."
|
||||||
|
elif [ "$INSTALLED_DOCKER_VERSION" -lt "$MIN_DOCKER_VERSION" ]; then
|
||||||
|
echo " - ERROR: Docker version $INSTALLED_DOCKER_VERSION is too old. Coolify requires Docker $MIN_DOCKER_VERSION or newer."
|
||||||
|
echo " Please upgrade Docker: https://docs.docker.com/engine/install/"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo " - Docker version $(docker version --format '{{.Server.Version}}' 2>/dev/null) meets minimum requirement ($MIN_DOCKER_VERSION+)."
|
||||||
|
fi
|
||||||
|
|
||||||
log_section "Step 4/9: Checking Docker configuration"
|
log_section "Step 4/9: Checking Docker configuration"
|
||||||
echo "4/9 Checking Docker configuration..."
|
echo "4/9 Checking Docker configuration..."
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ DATE=$(date +"%Y%m%d-%H%M%S")
|
||||||
|
|
||||||
OS_TYPE=$(grep -w "ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"')
|
OS_TYPE=$(grep -w "ID" /etc/os-release | cut -d "=" -f 2 | tr -d '"')
|
||||||
ENV_FILE="/data/coolify/source/.env"
|
ENV_FILE="/data/coolify/source/.env"
|
||||||
DOCKER_VERSION="27.0"
|
DOCKER_VERSION="latest"
|
||||||
# TODO: Ask for a user
|
# TODO: Ask for a user
|
||||||
CURRENT_USER=$USER
|
CURRENT_USER=$USER
|
||||||
|
|
||||||
|
|
@ -499,13 +499,10 @@ fi
|
||||||
|
|
||||||
install_docker() {
|
install_docker() {
|
||||||
set +e
|
set +e
|
||||||
curl -s https://releases.rancher.com/install-docker/${DOCKER_VERSION}.sh | sh 2>&1 || true
|
curl -fsSL https://get.docker.com | sh 2>&1 || true
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
curl -s https://get.docker.com | sh -s -- --version ${DOCKER_VERSION} 2>&1
|
echo "Automated Docker installation failed. Trying manual installation."
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
install_docker_manually
|
||||||
echo "Automated Docker installation failed. Trying manual installation."
|
|
||||||
install_docker_manually
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
}
|
}
|
||||||
|
|
@ -548,16 +545,6 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Docker is not installed. Installing Docker. It may take a while."
|
echo " - Docker is not installed. Installing Docker. It may take a while."
|
||||||
getAJoke
|
getAJoke
|
||||||
case "$OS_TYPE" in
|
case "$OS_TYPE" in
|
||||||
"almalinux")
|
|
||||||
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1
|
|
||||||
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
|
||||||
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
systemctl start docker >/dev/null 2>&1
|
|
||||||
systemctl enable docker >/dev/null 2>&1
|
|
||||||
;;
|
|
||||||
"alpine" | "postmarketos")
|
"alpine" | "postmarketos")
|
||||||
apk add docker docker-cli-compose >/dev/null 2>&1
|
apk add docker docker-cli-compose >/dev/null 2>&1
|
||||||
rc-update add docker default >/dev/null 2>&1
|
rc-update add docker default >/dev/null 2>&1
|
||||||
|
|
@ -569,8 +556,9 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"arch")
|
"arch")
|
||||||
pacman -Sy docker docker-compose --noconfirm >/dev/null 2>&1
|
pacman -Syu --noconfirm --needed docker docker-compose >/dev/null 2>&1
|
||||||
systemctl enable docker.service >/dev/null 2>&1
|
systemctl enable docker.service >/dev/null 2>&1
|
||||||
|
systemctl start docker.service >/dev/null 2>&1
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Failed to install Docker with pacman. Try to install it manually."
|
echo " - Failed to install Docker with pacman. Try to install it manually."
|
||||||
echo " Please visit https://wiki.archlinux.org/title/docker for more information."
|
echo " Please visit https://wiki.archlinux.org/title/docker for more information."
|
||||||
|
|
@ -581,7 +569,7 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
dnf install docker -y >/dev/null 2>&1
|
dnf install docker -y >/dev/null 2>&1
|
||||||
DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
|
DOCKER_CONFIG=${DOCKER_CONFIG:-/usr/local/lib/docker}
|
||||||
mkdir -p $DOCKER_CONFIG/cli-plugins >/dev/null 2>&1
|
mkdir -p $DOCKER_CONFIG/cli-plugins >/dev/null 2>&1
|
||||||
curl -sL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
curl -fsSL "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
||||||
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose >/dev/null 2>&1
|
||||||
systemctl start docker >/dev/null 2>&1
|
systemctl start docker >/dev/null 2>&1
|
||||||
systemctl enable docker >/dev/null 2>&1
|
systemctl enable docker >/dev/null 2>&1
|
||||||
|
|
@ -591,34 +579,28 @@ if ! [ -x "$(command -v docker)" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"centos" | "fedora" | "rhel" | "tencentos")
|
"almalinux" | "tencentos")
|
||||||
if [ -x "$(command -v dnf5)" ]; then
|
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1
|
||||||
# dnf5 is available
|
|
||||||
dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo --overwrite >/dev/null 2>&1
|
|
||||||
else
|
|
||||||
# dnf5 is not available, use dnf
|
|
||||||
dnf config-manager --add-repo=https://download.docker.com/linux/$OS_TYPE/docker-ce.repo >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1
|
||||||
|
systemctl start docker >/dev/null 2>&1
|
||||||
|
systemctl enable docker >/dev/null 2>&1
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
systemctl start docker >/dev/null 2>&1
|
|
||||||
systemctl enable docker >/dev/null 2>&1
|
|
||||||
;;
|
;;
|
||||||
"ubuntu" | "debian" | "raspbian")
|
"ubuntu" | "debian" | "raspbian" | "centos" | "fedora" | "rhel" | "sles")
|
||||||
install_docker
|
install_docker
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Automated Docker installation failed. Trying manual installation."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
install_docker_manually
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
install_docker
|
install_docker
|
||||||
if ! [ -x "$(command -v docker)" ]; then
|
if ! [ -x "$(command -v docker)" ]; then
|
||||||
echo " - Automated Docker installation failed. Trying manual installation."
|
echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue."
|
||||||
install_docker_manually
|
exit 1
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -627,6 +609,19 @@ else
|
||||||
echo " - Docker is installed."
|
echo " - Docker is installed."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Verify minimum Docker version
|
||||||
|
MIN_DOCKER_VERSION=24
|
||||||
|
INSTALLED_DOCKER_VERSION=$(docker version --format '{{.Server.Version}}' 2>/dev/null | cut -d. -f1)
|
||||||
|
if [ -z "$INSTALLED_DOCKER_VERSION" ]; then
|
||||||
|
echo " - WARNING: Could not determine Docker version. Please ensure Docker $MIN_DOCKER_VERSION+ is installed."
|
||||||
|
elif [ "$INSTALLED_DOCKER_VERSION" -lt "$MIN_DOCKER_VERSION" ]; then
|
||||||
|
echo " - ERROR: Docker version $INSTALLED_DOCKER_VERSION is too old. Coolify requires Docker $MIN_DOCKER_VERSION or newer."
|
||||||
|
echo " Please upgrade Docker: https://docs.docker.com/engine/install/"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo " - Docker version $(docker version --format '{{.Server.Version}}' 2>/dev/null) meets minimum requirement ($MIN_DOCKER_VERSION+)."
|
||||||
|
fi
|
||||||
|
|
||||||
log_section "Step 4/9: Checking Docker configuration"
|
log_section "Step 4/9: Checking Docker configuration"
|
||||||
echo "4/9 Checking Docker configuration..."
|
echo "4/9 Checking Docker configuration..."
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue