Skip to content

fix(docker): update image builds and improve deployment tooling - #6981

Merged
kuny0707 merged 5 commits into
tronprotocol:release_v4.8.3from
3for:feat/docker
Oct 15, 2026
Merged

kuny0707 merged 5 commits into
tronprotocol:release_v4.8.3from
3for:feat/docker

Conversation

@3for

@3for 3for commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

  • Update Docker images to Ubuntu 24.04, verify the amd64 JDK with PGP, and launch FullNode directly.
  • Improve helper argument handling, configuration, mounts, port mappings and container lifecycle management.
  • Add static CI checks and refresh deployment guides, including JVM sizing examples.

Why are these changes required?

The Docker deployment path used outdated dependencies, weak JDK verification and stale instructions, with no dedicated CI coverage.

This PR has been tested by:

  • Unit Tests: Java unit tests not run; no Java code changes.
  • Manual Testing: Bash syntax validation (bash -n) and ShellCheck passed.

Follow up

  • Sync matching Dockerfiles to develop and verify standalone helper builds for both architectures.
  • Address JVM defaults, helper memory options, and vmoptions parsing/runtime compatibility separately.

Extra details

Targets release_v4.8.3. Until develop receives the matching files, use a complete checkout for --build. Dockerfiles continue to build Java sources from remote master.

Comment thread docker/docker.md Outdated
- Explain that downloaded Dockerfiles require a missing docker-entrypoint.sh
- Direct users to a complete checkout containing matching Dockerfiles
- Document synchronization and verification requirements for standalone builds
Accept upstream removal of the root .dockerignore because Docker builds use docker/ as their build context. Preserve the branch's Docker image, lifecycle, documentation and CI changes.
Comment thread docker/arm64/Dockerfile
&& rm -rf /var/lib/apt/lists/*
# Update and install dependencies without using any cache
RUN apt-get update $NO_PROXY_CACHE \
&& apt-get --quiet --yes install git 7zip curl jq libtcmalloc-minimal4 openjdk-17-jre-headless=17* \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MUST] This installs only the Java runtime, but line 17 builds java-tron from source. The previous Temurin base image provided a full JDK; Ubuntu packages javac in openjdk-17-jdk-headless, not openjdk-17-jre-headless. Please install the JDK for the build stage and verify an actual ARM64 image build. The new CI job runs only docker buildx build --check, so it does not catch this failure.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This choice is intentional. The current Ubuntu + openjdk-17-jre-headless setup supports our source build and produces a smaller final image than the Temurin-based variant we previously compared. That was the reason for this change.

The CI job is explicitly a static check; we are not presenting --check as validation of a complete ARM64 image build.

Comment thread docker/docker.sh

if [[ "$network" = "private" ]]; then
network_config="$CONFIG_DIR/$PRIVATE_NET_CONFIG_FILE"
elif [[ "$network" != "main" ]]; then

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[SHOULD] The previous helper accepted --run --net test and downloaded test_net_config.conf; this branch now rejects that invocation. Please either retain test-network support or document a concrete migration using -v and -c for existing deployments.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removing --net test is intentional. The documentation already directs testnet users to a separate repository maintained specifically for testnet deployment.

This helper is intended for mainnet and single-node private networks. Since testnet may require a different source revision, users should follow the documented deployment path rather than simply switching the configuration of a mainnet image.

@kuny0707
kuny0707 merged commit 4db3688 into tronprotocol:release_v4.8.3 Oct 15, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants