| 503 | `; |
| 504 | |
| 505 | const installDocker = () => ` |
| 506 | |
| 507 | # Detect if docker is installed via snap |
| 508 | if [ -x "$(command -v snap)" ]; then |
| 509 | SNAP_DOCKER_INSTALLED=$(snap list docker >/dev/null 2>&1 && echo "true" || echo "false") |
| 510 | if [ "$SNAP_DOCKER_INSTALLED" = "true" ]; then |
| 511 | echo " - Docker is installed via snap." |
| 512 | echo " Please note that Dokploy does not support Docker installed via snap." |
| 513 | echo " Please remove Docker with snap (snap remove docker) and reexecute this script." |
| 514 | exit 1 |
| 515 | fi |
| 516 | fi |
| 517 | |
| 518 | echo -e "3. Check Docker Installation. " |
| 519 | if ! [ -x "$(command -v docker)" ]; then |
| 520 | echo " - Docker is not installed. Installing Docker. It may take a while." |
| 521 | case "$OS_TYPE" in |
| 522 | "almalinux" | "rocky" | "centos" | "rhel" | "ol") |
| 523 | $SUDO_CMD dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo >/dev/null 2>&1 |
| 524 | $SUDO_CMD dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null 2>&1 |
| 525 | if ! [ -x "$(command -v docker)" ]; then |
| 526 | echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue." |
| 527 | exit 1 |
| 528 | fi |
| 529 | $SUDO_CMD systemctl start docker >/dev/null 2>&1 |
| 530 | $SUDO_CMD systemctl enable docker >/dev/null 2>&1 |
| 531 | ;; |
| 532 | "opencloudos") |
| 533 | # Special handling for OpenCloud OS |
| 534 | echo " - Installing Docker for OpenCloud OS..." |
| 535 | $SUDO_CMD dnf install -y docker >/dev/null 2>&1 |
| 536 | if ! [ -x "$(command -v docker)" ]; then |
| 537 | echo " - Docker could not be installed automatically. Please visit https://docs.docker.com/engine/install/ and install Docker manually to continue." |
| 538 | exit 1 |
| 539 | fi |
| 540 | |
| 541 | # Remove --live-restore parameter from Docker configuration if it exists |
| 542 | if [ -f "/etc/sysconfig/docker" ]; then |
| 543 | echo " - Removing --live-restore parameter from Docker configuration..." |
| 544 | $SUDO_CMD sed -i 's/--live-restore[^[:space:]]*//' /etc/sysconfig/docker >/dev/null 2>&1 |
| 545 | $SUDO_CMD sed -i 's/--live-restore//' /etc/sysconfig/docker >/dev/null 2>&1 |
| 546 | # Clean up any double spaces that might be left |
| 547 | $SUDO_CMD sed -i 's/ */ /g' /etc/sysconfig/docker >/dev/null 2>&1 |
| 548 | fi |
| 549 | |
| 550 | $SUDO_CMD systemctl enable docker >/dev/null 2>&1 |
| 551 | $SUDO_CMD systemctl start docker >/dev/null 2>&1 |
| 552 | echo " - Docker configured for OpenCloud OS" |
| 553 | ;; |
| 554 | "alpine") |
| 555 | $SUDO_CMD apk add docker docker-cli-compose >/dev/null 2>&1 |
| 556 | $SUDO_CMD rc-update add docker default >/dev/null 2>&1 |
| 557 | $SUDO_CMD service docker start >/dev/null 2>&1 |
| 558 | if ! [ -x "$(command -v docker)" ]; then |
| 559 | echo " - Failed to install Docker with apk. Try to install it manually." |
| 560 | echo " Please visit https://wiki.alpinelinux.org/wiki/Docker for more information." |
| 561 | exit 1 |
| 562 | fi |