build(eclair): add noble-based image for Eclair nodes - #1363
Conversation
Greptile SummaryThis PR migrates the Eclair Docker image from Alpine-based
Confidence Score: 5/5Safe to merge; the Alpine-to-Noble migration is straightforward and the node crash is correctly addressed. Both changed files perform a clean Alpine-to-Ubuntu package-manager and user-management translation. The gosu/su-exec swap, apt-get/apk swap, and groupadd/useradd swap are all correct. The one subtle gap (missing -d /home/eclair on useradd) is unlikely to break the node since ECLAIR_DATADIR is set explicitly, but it is worth fixing for correctness. docker/eclair/docker-entrypoint.sh — the useradd call could benefit from an explicit -d /home/eclair to match Alpine's implicit home-directory assignment.
|
| Filename | Overview |
|---|---|
| docker/eclair/Dockerfile | Migrates build and runtime images from Alpine-based eclipse-temurin to Ubuntu Noble (24.04 LTS). Package management commands updated from apk to apt-get with correct cache cleanup, su-exec replaced with gosu, and mkdir calls hardened with -p flag. Looks correct. |
| docker/eclair/docker-entrypoint.sh | Alpine user-management commands (addgroup/adduser/su-exec) replaced with Debian equivalents (groupadd/useradd/gosu). The useradd call is missing -d /home/eclair, so the eclair user's registered home directory will be / rather than /home/eclair on Ubuntu; the directory is created/chowned correctly but $HOME will be wrong for the process. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["docker-entrypoint.sh starts"] --> B{"id eclair exists?"}
B -- No --> C["groupadd -f -g GROUPID eclair"]
C --> D["useradd -r -u USERID -g GROUPID -o eclair\n(home defaults to / without -d flag)"]
D --> E["mkdir -p /home/eclair\nchown -R USERID:GROUPID /home/eclair"]
B -- Yes --> F{"arg[1] == polar-eclair?"}
E --> F
F -- Yes --> G["Build JAVA_OPTS from CLI args"]
G --> H["gosu eclair bash eclair-node/bin/eclair-node.sh JAVA_OPTS\n(uses ECLAIR_DATADIR=/home/eclair/)"]
F -- No --> I["exec original command"]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A["docker-entrypoint.sh starts"] --> B{"id eclair exists?"}
B -- No --> C["groupadd -f -g GROUPID eclair"]
C --> D["useradd -r -u USERID -g GROUPID -o eclair\n(home defaults to / without -d flag)"]
D --> E["mkdir -p /home/eclair\nchown -R USERID:GROUPID /home/eclair"]
B -- Yes --> F{"arg[1] == polar-eclair?"}
E --> F
F -- Yes --> G["Build JAVA_OPTS from CLI args"]
G --> H["gosu eclair bash eclair-node/bin/eclair-node.sh JAVA_OPTS\n(uses ECLAIR_DATADIR=/home/eclair/)"]
F -- No --> I["exec original command"]
Reviews (2): Last reviewed commit: "build(eclair): add noble-based image for..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1363 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 211 211
Lines 7036 7036
Branches 1416 1415 -1
=========================================
Hits 7036 7036 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Awesome @Jem256 Would be nice to have this for v0.14.0 ... tests are failing for unrelated reasons? |
|
@theborakompanioni it's all good now. |
|
cc @Abdulkbk for review |
|
Wanted to reproduce this issue but couldn't because channels open normally. Or is the issue non-deterministic? @Jem256 |
Failure from #1212 ( |
To repro on |
|
I was testing on a Mac (arm arch). It seems the issue is with linux/amd and windows x86_64. |
|
@jamaljsr will need to push the images for this one |
Closes #1212
Description
This PR fixes a bug where eclair crashes when trying to open channels with the v0.12.0 & v0.13.1 Docker images. This is with eclair <-> eclair and eclair<->lnd channels. Uses;
Steps to Test
Screenshots