Skip to content

Conversation

@rquidute
Copy link
Contributor

@rquidute rquidute commented Dec 9, 2025

What Changed

Fixes Docker 29.x compatibility issues that cause Traefik proxy failures with "client version 1.24 is too old" errors. Implements automatic Docker version management to prevent compatibility issues during installation and updates.

Changes

  • Fresh Installation Flow Updates:

    • Modified scripts/ubuntu/1-install-dependencies.sh to detect and exclude Docker 29.x versions during fresh installations
    • Added special handling for docker-ce packages to automatically install the latest Docker 28.x version
    • Implemented package holding to prevent automatic upgrades to incompatible versions
  • Update Flow Integration:

    • Updated scripts/ubuntu/internal-auto-update.sh to include Docker compatibility check during system updates
    • Added call to fix-docker-compatibility.sh after stopping containers but before updating
  • New Docker Fix Scripts (Workaround):

    • Created scripts/fix-docker-compatibility.sh: Core utility to detect Docker 29.x and downgrade to compatible 28.x versions
    • Created scripts/fix-docker-workaround.sh: Complete standalone solution that stops services, fixes Docker, rebuilds images, and restarts services

Related Issue

#812

Testing

The following scenarios were covered in this PR:

  • Fresh install for v1.4.2 version, then update TH to v1.5 by running the following commands:
    git checkout workaround_docker_traefik_issue_v_1_5
    git pull
    ./scripts/ubuntu/auto-update.sh workaround_docker_traefik_issue_v_1_5

and after updating the issue was not there.

  • Fresh using workaround_docker_traefik_issue_v_1_5 branch and issue was not there

DO NOT MERGE SINCE IT'S STILL WAITING FOR THE CCB

@gemini-code-assist
Copy link

Summary of Changes

Hello @rquidute, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves critical compatibility issues between Docker 29.x and Traefik, which were causing proxy failures with 'client version is too old' errors. It implements a robust system for automatic Docker version management, ensuring that only compatible Docker 28.x versions are installed and maintained across both new setups and existing deployments. The changes include updates to installation and update scripts, alongside the introduction of dedicated scripts for detecting, downgrading, and holding Docker versions, providing a comprehensive solution to maintain operational stability.

Highlights

  • Automatic Docker Version Management: Introduced mechanisms to automatically detect and manage Docker versions during both fresh installations and updates, specifically preventing the installation of incompatible Docker 29.x versions and ensuring the use of compatible 28.x versions.
  • Core Docker Compatibility Fix Script: Added a new script, scripts/fix-docker-compatibility.sh, which serves as the core utility to identify Docker 29.x installations and perform a downgrade to a compatible 28.x version, including holding packages to prevent future automatic upgrades.
  • Comprehensive Standalone Workaround: Created scripts/fix-docker-workaround.sh, a complete standalone solution that orchestrates stopping services, applying the Docker compatibility fix, rebuilding necessary Docker images (backend, frontend, and chip-cert-bins), and restarting services to resolve issues for existing installations.
  • Enhanced Installation and Update Flows: Modified scripts/ubuntu/1-install-dependencies.sh to exclude Docker 29.x during fresh installs and scripts/ubuntu/internal-auto-update.sh to incorporate the Docker compatibility check and fix during system updates, ensuring system stability.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a robust solution to handle Docker 29.x compatibility issues by adding scripts to detect and downgrade Docker when necessary. The changes are well-integrated into both fresh installation and update workflows. The new scripts are thoughtfully written, managing the downgrade process, including package removal, installation of a compatible version, and placing a hold on packages to prevent unwanted upgrades. The modifications to existing scripts correctly incorporate this new compatibility fix. My review includes a few minor suggestions to enhance code clarity and eliminate redundancy in the new shell scripts. Overall, the changes are excellent and effectively resolve the stated problem.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants