feat!: add Ubuntu 26.04 image, unified Dockerfile, Supercronic-based crons, Node.js v24 LTS - #95
Open
snowyyd wants to merge 4 commits into
Open
feat!: add Ubuntu 26.04 image, unified Dockerfile, Supercronic-based crons, Node.js v24 LTS#95snowyyd wants to merge 4 commits into
snowyyd wants to merge 4 commits into
Conversation
BREAKING CHANGE: `latest` tag now points to ubuntu 26.04 refactor: unify all Dockerfile files
BREAKING CHANGE: Node.js version is now latest LTS (v24)
Replaced the systemd-based cron with the user-based supercronic. Since supercronic does not require SUID/SGID permissions, it can be run directly in containers with stricter security policies (`--security-opt=no-new-privileges`). The crontab file is now stored in `$LGSM_CONFIG/crontab` and is read only if `LGSM_READ_CRONTAB` env var is `true`. Compatibility with `UPDATE_CHECK` is maintained, and a helper script has been added to correctly parse and convert the user supplied value (minutes) into valid cron syntax.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Ubuntu 26.04 base image was added and is now the default image (tags:
latest,ubuntu,ubuntu-26.04). This is a breaking change.In addition, all
Dockerfile.*files were consolidated into a single file. Theaction-docker-publish.ymlworkflow has been updated (and simplified) to reflect this change.The Node.js version was updated from v20 (EOL) to Node.js v24 (the latest LTS to date). This is a breaking change.
Finally, the use of
cron(system-based) was replaced withsupercronic(user-based). The main advantage is that the process now runs entirely under thelinuxgsmuser and does not require SUID/SGID permissions (unlikecrontab, which requires SGID to modify crontabs); this facilitates the use of containers with stricter security policies (such asno-new-privileges).Compatibility with
UPDATE_CHECKhas been maintained. It is possible to optionally load a savedcrontabusingLGSM_READ_CRONTAB. If that variable is not defined, thenentrypoint-user.shwill overwrite the crontab file on each execution.To correctly support user-specified
UPDATE_CHECKvalues (in minutes), a helper script was added to convert the minutes to valid cron syntax (unlike the current implementation, which generates invalid cron syntax with the defaultUPDATE_CHECKvalue).Summary
Dockerfile.into a single one.action-docker-publish.ymlworkflow.cronwithsupercronic.Since this is a fairly significant change involving two breaking changes, it would be ideal to run some tests to verify that it works correctly.
The original idea of saving a reusable crontab file comes from #94. Credit goes to the original author @WildPenquin.