Conversation
There was a problem hiding this comment.
Pull request overview
Adds container support to run stellar inside Docker, enabling containerized workflows (e.g., Kubernetes automation) as a first step toward publishing an official image (Issue #2387).
Changes:
- Add a
Dockerfilethat installs thestellar-clirelease.deband Rust +wasm32v1-nonetarget for contract builds. - Add an
entrypoint.shthat starts a D-Bus session and gnome-keyring, then executes the CLI from/source.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| Dockerfile | Builds a runtime image with Rust + wasm target and installs the latest released stellar-cli .deb, sets entrypoint. |
| entrypoint.sh | Initializes D-Bus + gnome-keyring for secure-store support, then runs the requested command. |
leighmcculloch
left a comment
There was a problem hiding this comment.
Couple thoughts inline, only major concern is the dependence on debs.
| RUN apt-get update && \ | ||
| apt-get install -y --no-install-recommends dbus gnome-keyring libdbus-1-3 libudev1 libssl3 && \ | ||
| LATEST=$(curl -s https://api.github.com/repos/stellar/stellar-cli/releases/latest | grep '"tag_name"' | sed 's/.*"v\(.*\)".*/\1/') && \ | ||
| ARCH=$(dpkg --print-architecture) && \ | ||
| curl -fsSL "https://github.com/stellar/stellar-cli/releases/download/v${LATEST}/stellar-cli_${LATEST}_${ARCH}.deb" \ | ||
| -o /tmp/stellar-cli.deb && \ | ||
| dpkg -i /tmp/stellar-cli.deb && \ | ||
| rm -rf /var/lib/apt/lists/* /tmp/stellar-cli.deb |
There was a problem hiding this comment.
What's the motivation of installing from the deb? The inefficiency we've seen in the past is that to get a docker image requires a long round trip of getting a deb built, etc. Where-as if the image is built from source, there's no dependency hoop jumping. I'd make this build from source because of that.
There was a problem hiding this comment.
It seemed easier than downloading the tar, uncompressing and moving to the right place. This also ensures we're dogfooding the installer.
I don't see a benefit on building from source in this one particular case, but maybe I'm being shortsighted. 🤔
What
Why
This is the first step so we can publish a docker image, as requested in #2387.
Known limitations
N/A