Skip to content

Conversation

@ardocrat
Copy link
Contributor

@ardocrat ardocrat commented Dec 17, 2025

Added docker image build on push at master branch.

  • Made a single Dockerfile to use single image for testnet and mainnet
  • Added support for --testnet argument in the end of grin server run command to use single image at compose files.
  • Publish to ghcr.io on build

Release member from Mimblewimble should create Secrets for repo (https://github.com/mimblewimble/grin/settings/secrets/actions):

After build need to check that package is public at https://ghcr.io/mimblewimble/grin and change visibility if needed here https://github.com/orgs/mimblewimble/packages/container/grin/settings.

@DavidBurkett
Copy link
Member

The duplicate --testnet/--usernet additions to server run are a little bit weird. I don’t think we actually need to modify the Grin CLI to support this Docker use case.

Right now the need for subcommand-level flags is coming from the Dockerfile using:

ENTRYPOINT ["grin", "server", "run"]

Because Docker only appends args, that forces things like --testnet to appear after server run.

An alternative that avoids changing the CLI at all would be to restructure the Dockerfile like this:

ENTRYPOINT ["grin"]
CMD ["server", "run"]

That preserves the existing, canonical CLI structure and lets users do:

docker run grin
# -> grin server run

docker run grin --testnet server run
# -> grin --testnet server run

This still works cleanly with docker-compose via command: overrides. This keeps chain selection where it already lives (command-level), avoids duplicating flags on subcommands, and keeps the Rust CLI unchanged.

@DavidBurkett DavidBurkett merged commit da7b6b5 into mimblewimble:master Jan 6, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants