Skip to content

Conversation

Copy link

Copilot AI commented Nov 4, 2025

Implementation of Docker container pipelines for ETC networks - COMPLETE ✅

Summary of Changes

✅ Network-Specific Docker Images Created

  • Dockerfile.mainnet - Pre-configured for ETC mainnet synchronization
  • Dockerfile.mordor - Pre-configured for Mordor testnet synchronization
  • Dockerfile.mordor-miner - Pre-configured for Mordor testnet with mining enabled by default

✅ GitHub Actions Workflows

  • Updated docker.yml - Now builds 6 image variants (main, dev, base, mainnet, mordor, mordor-miner)
  • Created nightly.yml - Automated nightly builds at 00:00 GMT with date-tagged releases

✅ Documentation & Badges

  • Added Docker Build and Nightly Build badges to main README.md
  • Comprehensive documentation in docker/README.md including:
    • Usage examples for all new images
    • Docker Compose examples
    • Security warnings for mining
    • Nightly build information

✅ Quality Assurance

  • YAML syntax validation passed
  • Dockerfile syntax validation passed
  • Code review completed with no issues
  • CodeQL security scan completed with no alerts
  • Trailing whitespace removed for linting compliance
  • Review feedback addressed:
    • Fixed apt-key commands to use explicit stdin (apt-key add -)
    • Updated example dates to 2025 for current relevance

What This Enables

  1. Easy Mainnet Deployment: docker run chipprbots/fukuii-mainnet:latest
  2. Easy Mordor Testnet: docker run chipprbots/fukuii-mordor:latest
  3. Easy Mordor Mining: docker run chipprbots/fukuii-mordor-miner:latest -Dfukuii.mining.coinbase=YOUR_ADDRESS
  4. Nightly Builds: Automatic daily builds for testing latest changes
  5. Multiple Registries: Images published to both Docker Hub and GitHub Container Registry

Security Notes

  • All images run as non-root user (UID/GID 1000)
  • Multi-stage builds for minimal attack surface
  • Miner image includes prominent warnings about coinbase address configuration

Ready for Merge

All requirements from the issue have been completed and validated.

Original prompt

This section details on the original issue you should resolve

<issue_title>Docker containers</issue_title>
<issue_description>We need to update our github container pipelines to create containers pre-configured to sync to the mordor and mainnet of ethereum classic. I would like one node with mining neabled by default on mordor network.

Create a 'nightly' action that will create nightly builds at 0000 gmt and push them to the container repositories

Add container build badges to the project readme. </issue_description>

Comments on the Issue (you are @copilot in this section)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 3 commits November 4, 2025 04:55
Co-authored-by: realcodywburns <13103499+realcodywburns@users.noreply.github.com>
Co-authored-by: realcodywburns <13103499+realcodywburns@users.noreply.github.com>
@realcodywburns realcodywburns marked this pull request as ready for review November 4, 2025 04:59
@github-actions github-actions bot added documentation Improvements or additions to documentation ci/cd docker labels Nov 4, 2025
Co-authored-by: realcodywburns <13103499+realcodywburns@users.noreply.github.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR adds network-specific Docker images and nightly build automation for the Fukuii Ethereum client. It introduces pre-configured Docker images for ETC mainnet, Mordor testnet, and Mordor testnet mining, along with a nightly build workflow to provide daily automated builds.

  • Network-specific Dockerfiles created for mainnet, mordor testnet, and mordor testnet mining configurations
  • Nightly build workflow added to automatically build all images daily at midnight UTC
  • Docker workflow extended to build network-specific images in addition to standard images
  • Comprehensive documentation added to docker/README.md covering the new images and workflows

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
docker/Dockerfile.mainnet New Dockerfile pre-configured for Ethereum Classic mainnet with FUKUII_NETWORK=etc
docker/Dockerfile.mordor New Dockerfile pre-configured for Mordor testnet with FUKUII_NETWORK=mordor
docker/Dockerfile.mordor-miner New Dockerfile for Mordor testnet with mining enabled by default, includes mining configuration
.github/workflows/nightly.yml New workflow for daily automated builds of all images with nightly tags
.github/workflows/docker.yml Extended to build network-specific images (mainnet, mordor, mordor-miner) and whitespace cleanup
docker/README.md Added comprehensive documentation for network-specific images and nightly build workflow
README.md Added workflow status badges for docker and nightly builds

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +8 to +9
[![Docker Build](https://github.com/chippr-robotics/fukuii/actions/workflows/docker.yml/badge.svg)](https://github.com/chippr-robotics/fukuii/actions/workflows/docker.yml)
[![Nightly Build](https://github.com/chippr-robotics/fukuii/actions/workflows/nightly.yml/badge.svg)](https://github.com/chippr-robotics/fukuii/actions/workflows/nightly.yml)
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

Inconsistent repository names in badge URLs. The CI badge uses 'chordodes_fukuii' while the Docker Build and Nightly Build badges use 'fukuii'. These should all reference the same repository for consistency.

Suggested change
[![Docker Build](https://github.com/chippr-robotics/fukuii/actions/workflows/docker.yml/badge.svg)](https://github.com/chippr-robotics/fukuii/actions/workflows/docker.yml)
[![Nightly Build](https://github.com/chippr-robotics/fukuii/actions/workflows/nightly.yml/badge.svg)](https://github.com/chippr-robotics/fukuii/actions/workflows/nightly.yml)
[![Docker Build](https://github.com/chippr-robotics/chordodes_fukuii/actions/workflows/docker.yml/badge.svg)](https://github.com/chippr-robotics/chordodes_fukuii/actions/workflows/docker.yml)
[![Nightly Build](https://github.com/chippr-robotics/chordodes_fukuii/actions/workflows/nightly.yml/badge.svg)](https://github.com/chippr-robotics/chordodes_fukuii/actions/workflows/nightly.yml)

Copilot uses AI. Check for mistakes.

Choose a reason for hiding this comment

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

'chordodes_fukuii' is incorrect, 'fukuii' is actually correct

unzip \
&& echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | tee /etc/apt/sources.list.d/sbt.list && \
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | tee /etc/apt/sources.list.d/sbt_old.list && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

The command 'apt-key add' is used without specifying '-' to explicitly read from stdin, which could lead to ambiguous behavior. Use 'apt-key add -' for clarity and to follow best practices.

Suggested change
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add - && \

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

Fixed in 7521e41. Added explicit stdin (-) to apt-key add command for clarity and best practices.

unzip \
&& echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | tee /etc/apt/sources.list.d/sbt.list && \
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | tee /etc/apt/sources.list.d/sbt_old.list && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

The command 'apt-key add' is used without specifying '-' to explicitly read from stdin, which could lead to ambiguous behavior. Use 'apt-key add -' for clarity and to follow best practices.

Suggested change
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add - && \

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

Fixed in 7521e41. Added explicit stdin (-) to apt-key add command for clarity and best practices.

unzip \
&& echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | tee /etc/apt/sources.list.d/sbt.list && \
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | tee /etc/apt/sources.list.d/sbt_old.list && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

The command 'apt-key add' is used without specifying '-' to explicitly read from stdin, which could lead to ambiguous behavior. Use 'apt-key add -' for clarity and to follow best practices.

Suggested change
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add && \
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | apt-key add - && \

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

Fixed in 7521e41. Added explicit stdin (-) to apt-key add command for clarity and best practices.

docker/README.md Outdated

**Tags Generated:**
- `nightly` - Always points to the latest nightly build
- `nightly-YYYYMMDD` - Specific nightly build date (e.g., `nightly-20231115`)
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

[nitpick] The example date '20231115' (November 15, 2023) is in the past. Consider using a more recent or generic example date, or use a placeholder like 'nightly-20250115' to better reflect current usage.

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

Fixed in 7521e41. Updated example date from 2023 to 2025 (nightly-20250115).

docker/README.md Outdated
docker pull chipprbots/fukuii-mainnet:nightly
# Pull specific nightly build
docker pull chipprbots/fukuii-mordor-miner:nightly-20231115
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

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

[nitpick] The example date '20231115' (November 15, 2023) is in the past. Consider using a more recent or generic example date to better reflect current usage patterns.

Suggested change
docker pull chipprbots/fukuii-mordor-miner:nightly-20231115
docker pull chipprbots/fukuii-mordor-miner:nightly-YYYYMMDD

Copilot uses AI. Check for mistakes.
Copy link
Author

Choose a reason for hiding this comment

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

Fixed in 7521e41. Updated example date from 2023 to 2025 (nightly-20250115).

Copilot AI changed the title [WIP] Update Docker container pipelines for Ethereum Classic Add pre-configured Docker images for ETC networks and nightly builds Nov 4, 2025
Copilot AI requested a review from realcodywburns November 4, 2025 05:03
Copilot finished work on behalf of realcodywburns November 4, 2025 05:03
@realcodywburns
Copy link

@copilot apply changes based on the comments in this thread

Co-authored-by: realcodywburns <13103499+realcodywburns@users.noreply.github.com>
Copilot finished work on behalf of realcodywburns November 4, 2025 12:22
@realcodywburns realcodywburns merged commit 183020a into develop Nov 4, 2025
10 of 11 checks passed
@realcodywburns realcodywburns deleted the copilot/update-docker-container-pipelines branch November 4, 2025 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd docker documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Docker containers

2 participants