Skip to content

feat(docker): modernize and harden the multi-architecture node workflow - #6928

Closed
3for wants to merge 3 commits into
tronprotocol:developfrom
3for:fix_docker_only_pr
Closed

feat(docker): modernize and harden the multi-architecture node workflow#6928
3for wants to merge 3 commits into
tronprotocol:developfrom
3for:fix_docker_only_pr

Conversation

@3for

@3for 3for commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

  • Modernizes the maintained Docker workflow for amd64 and arm64.
  • Supports local and remote image builds with source-aligned Mainnet configuration.
  • Runs FullNode as a non-root user and improves persistent-data protection.
  • Updates Mainnet/private-network behavior and removes the outdated Nile mode.
  • Adds dedicated Docker build, runtime, and smoke-test CI.
  • Updates the related deployment and migration documentation.

Why are these changes required?

The existing Docker workflow had fallen behind current java-tron development. It ran nodes as root, lacked consistent multi-architecture validation, and could use configuration from a different source than the node binary.

These changes provide a safer, reproducible, and maintainable first-party Docker workflow.

This PR has been tested by:

  • Unit Tests

    • Docker helper and lifecycle regression tests
    • CI selector and gate tests
    • Build-context filtering tests
    • JVM options and launcher tests
    • ShellCheck and Bash syntax checks
  • Manual Testing

    • BuildKit validation for both Dockerfiles
    • Real Docker build-context filtering
    • Runtime permission and restrictive umask checks
    • Mainnet/private configuration and container lifecycle verification

Follow up

  • Publish a compatible versioned non-root multi-architecture image.
  • Pin JDK/runtime dependencies and improve image provenance metadata.
  • Expand Docker CI selection to cover all distribution inputs.
  • Handle standalone start.sh hardening in a separate PR.

Extra details

This is a compatibility-affecting change. Existing data created by root-based images may require a one-time ownership migration.

The helper defaults to a locally built image because the current official latest image does not meet the new non-root runtime contract. Nile nodes should continue using the Nile-specific repository and tron-docker workflow.

This PR builds and validates images but does not publish them.

3for added 3 commits August 26, 2026 12:10
Build source-aligned amd64 and arm64 images with a direct non-root FullNode entrypoint. Harden local and remote build contexts, configuration handling, runtime mounts, lifecycle operations, JVM defaults, and deployment guidance.
Add path-aware amd64 and arm64 image builds, remote-source coverage, persistent BuildKit caches, and a fail-closed aggregate gate. Cover Docker helper behavior, image invariants, launcher parsing, lifecycle operations, and build-context filtering.
@github-actions
github-actions Bot requested a review from kuny0707 August 26, 2026 05:27
@3for 3for closed this Aug 26, 2026
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.

1 participant