Skip to content

Docker images on ghcr.io are outdated (December 2025) — critical bug fixes not available in production deployments + easy-install.py bug #2130

@EvilAmir

Description

@EvilAmir

Body:
Problem
The recommended production deployment method (via easy-install.py and ghcr.io/frappe/lms:stable) uses Docker images that were last updated in December 2025. Multiple critical bug fixes merged since then — including PR #2120 (course completion % fix, Jobs sidebar visibility fix) — are not available to production users.
Current state
ghcr.io/frappe/lms:stable — built December 24, 2025
ghcr.io/frappe/lms:main — built December 24, 2025
ghcr.io/frappe/lms:develop — built December 24, 2025
All three tags point to the same image digest: sha256:595527837251...
Impact
Users following the official recommended deployment cannot benefit from critical fixes such as:
Course completion percentage always showing 0% (#851, fixed in #2120)
Jobs tab not being hidden when disabled in LMS Settings (#192, fixed in #2120)
Bug 2: easy-install.py fails due to missing SITES_RULE in generated .env
Description
When running easy-install.py, the script overwrites the .env file but does not include the SITES_RULE variable. This causes docker-compose to fail with an error about missing variable. Manually adding SITES_RULE to .env doesn't help because the script overwrites it on every run.
Workaround
Either export the variable manually before running:
export SITES_RULE="Host(`your-domain.com`)"
Or patch the script to include SITES_RULE in the generated .env:
sudo sed -i 's/f"SITES={quoted_sites}\n",/f"SITES={quoted_sites}\n",\n f"SITES_RULE=Host({sites[0]})\n",/' /opt/lms/easy-install.py
The fix is to add SITES_RULE to env_file_lines around line 88-89 of easy-install.py:
f"SITES_RULE=Host({sites[0]})\n",
What's needed
Update ghcr.io images regularly via CI/CD on every merge to main/develop
Provide a Dockerfile for production builds — currently only a dev setup exists using frappe/bench:latest
Fix easy-install.py to include SITES_RULE in the generated .env file
Steps to reproduce (outdated images)
docker pull ghcr.io/frappe/lms:stable
docker inspect ghcr.io/frappe/lms:stable | grep Created

Output: "Created": "2024-12-23T07:03:46.557473773Z"

Expected behavior
Production Docker images should be updated regularly, or users should have a supported way to build from source with latest fixes. easy-install.py should generate a complete and valid .env file without requiring manual intervention.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions