From e33d4d76fe57cb696b0a0b622a0387c1cb72b4f2 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:21:39 +0100 Subject: [PATCH] Refactor Docker/Dockge & Bump to Debian 13 (#10719) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor Docker/Dockge & Bump to Debian 13 * Add base system update to Dockge update script The update_script function now updates and upgrades the base system before updating Dockge. This ensures the system is up to date prior to pulling new Docker images. * some fixes * Apply suggestion from @tremor021 * Apply suggestion from @tremor021 --------- Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com> --- ct/docker.sh | 28 ++++++++-------------------- ct/dockge.sh | 12 +++++++++--- frontend/public/json/docker.json | 2 +- frontend/public/json/dockge.json | 2 +- install/docker-install.sh | 23 ++++------------------- install/dockge-install.sh | 16 ++-------------- 6 files changed, 25 insertions(+), 58 deletions(-) diff --git a/ct/docker.sh b/ct/docker.sh index 1b82c281a..f5e89a578 100644 --- a/ct/docker.sh +++ b/ct/docker.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -24,33 +24,20 @@ function update_script() { check_container_storage check_container_resources - get_latest_release() { - curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4 - } - msg_info "Updating base system" - $STD apt-get update - $STD apt-get -y upgrade + $STD apt update + $STD apt upgrade -y msg_ok "Base system updated" msg_info "Updating Docker Engine" - $STD apt-get install --only-upgrade -y docker-ce docker-ce-cli containerd.io + $STD apt install --only-upgrade -y docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin msg_ok "Docker Engine updated" - if [[ -f /usr/local/lib/docker/cli-plugins/docker-compose ]]; then - COMPOSE_BIN="/usr/local/lib/docker/cli-plugins/docker-compose" - COMPOSE_NEW_VERSION=$(get_latest_release "docker/compose") - msg_info "Updating Docker Compose to $COMPOSE_NEW_VERSION" - curl -fsSL "https://github.com/docker/compose/releases/download/${COMPOSE_NEW_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \ - -o "$COMPOSE_BIN" - chmod +x "$COMPOSE_BIN" - msg_ok "Docker Compose updated" - fi - if docker ps -a --format '{{.Image}}' | grep -q '^portainer/portainer-ce:latest$'; then msg_info "Updating Portainer" $STD docker pull portainer/portainer-ce:latest - $STD docker stop portainer && docker rm portainer + $STD docker stop portainer + $STD docker rm portainer $STD docker volume create portainer_data >/dev/null 2>&1 $STD docker run -d \ -p 8000:8000 \ @@ -66,7 +53,8 @@ function update_script() { if docker ps -a --format '{{.Names}}' | grep -q '^portainer_agent$'; then msg_info "Updating Portainer Agent" $STD docker pull portainer/agent:latest - $STD docker stop portainer_agent && docker rm portainer_agent + $STD docker stop portainer_agent + $STD docker rm portainer_agent $STD docker run -d \ -p 9001:9001 \ --name=portainer_agent \ diff --git a/ct/dockge.sh b/ct/dockge.sh index 89024903a..b71a130c2 100644 --- a/ct/dockge.sh +++ b/ct/dockge.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-18}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,11 +27,17 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating ${APP}" + + msg_info "Updating base system" + $STD apt update + $STD apt upgrade -y + msg_ok "Base system updated" + + msg_info "Updating Dockge" cd /opt/dockge $STD docker compose pull $STD docker compose up -d - msg_ok "Updated ${APP}" + msg_ok "Updated Dockge" msg_ok "Updated successfully!" exit } diff --git a/frontend/public/json/docker.json b/frontend/public/json/docker.json index e9555d39f..0a214e3b9 100644 --- a/frontend/public/json/docker.json +++ b/frontend/public/json/docker.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } }, { diff --git a/frontend/public/json/dockge.json b/frontend/public/json/dockge.json index 147eaa515..75c590f2c 100644 --- a/frontend/public/json/dockge.json +++ b/frontend/public/json/dockge.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 18, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/install/docker-install.sh b/install/docker-install.sh index 4a643ca8f..ab617eed0 100644 --- a/install/docker-install.sh +++ b/install/docker-install.sh @@ -13,32 +13,17 @@ setting_up_container network_check update_os -get_latest_release() { - curl -fsSL https://api.github.com/repos/"$1"/releases/latest | grep '"tag_name":' | cut -d'"' -f4 -} +DOCKER_LATEST_VERSION=$(get_latest_github_release "moby/moby") +PORTAINER_LATEST_VERSION=$(get_latest_github_release "portainer/portainer") +PORTAINER_AGENT_LATEST_VERSION=$(get_latest_github_release "portainer/agent") -DOCKER_LATEST_VERSION=$(get_latest_release "moby/moby") -PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer") -PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent") -DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose") - -msg_info "Installing Docker $DOCKER_LATEST_VERSION" +msg_info "Installing Docker $DOCKER_LATEST_VERSION (with Compose, Buildx)" DOCKER_CONFIG_PATH='/etc/docker/daemon.json' mkdir -p $(dirname $DOCKER_CONFIG_PATH) echo -e '{\n "log-driver": "journald"\n}' >/etc/docker/daemon.json $STD sh <(curl -fsSL https://get.docker.com) msg_ok "Installed Docker $DOCKER_LATEST_VERSION" -read -r -p "${TAB3}Install Docker Compose v2 plugin? " prompt_compose -if [[ ${prompt_compose,,} =~ ^(y|yes)$ ]]; then - msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" - mkdir -p /usr/local/lib/docker/cli-plugins - curl -fsSL "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_LATEST_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \ - -o /usr/local/lib/docker/cli-plugins/docker-compose - chmod +x /usr/local/lib/docker/cli-plugins/docker-compose - msg_ok "Installed Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" -fi - read -r -p "${TAB3}Would you like to add Portainer (UI)? " prompt if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then msg_info "Installing Portainer $PORTAINER_LATEST_VERSION" diff --git a/install/dockge-install.sh b/install/dockge-install.sh index 575b1fdf5..f6e9f2fed 100644 --- a/install/dockge-install.sh +++ b/install/dockge-install.sh @@ -13,27 +13,15 @@ setting_up_container network_check update_os -get_latest_release() { - curl -fsSL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4 -} +DOCKER_LATEST_VERSION=$(get_latest_github_release "moby/moby") -DOCKER_LATEST_VERSION=$(get_latest_release "moby/moby") -DOCKER_COMPOSE_LATEST_VERSION=$(get_latest_release "docker/compose") - -msg_info "Installing Docker $DOCKER_LATEST_VERSION" +msg_info "Installing Docker $DOCKER_LATEST_VERSION (with Compose, Buildx)" DOCKER_CONFIG_PATH='/etc/docker/daemon.json' mkdir -p $(dirname $DOCKER_CONFIG_PATH) echo -e '{\n "log-driver": "journald"\n}' >/etc/docker/daemon.json $STD sh <(curl -fsSL https://get.docker.com) msg_ok "Installed Docker $DOCKER_LATEST_VERSION" -msg_info "Installing Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" -DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} -mkdir -p $DOCKER_CONFIG/cli-plugins -curl -fsSL https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_LATEST_VERSION/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose -chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose -msg_ok "Installed Docker Compose $DOCKER_COMPOSE_LATEST_VERSION" - msg_info "Installing Dockge" mkdir -p /opt/{dockge,stacks} curl -fsSL "https://raw.githubusercontent.com/louislam/dockge/master/compose.yaml" -o "/opt/dockge/compose.yaml"