Skip to content

Conversation

@ManuelBilbao
Copy link
Contributor

Motivation

We want to offer ARM Docker images for both L1 and L2.

Description

Add support for ARM images and update CI release workflows to build so.

Closes #3667

@ManuelBilbao ManuelBilbao self-assigned this Nov 28, 2025
@ManuelBilbao ManuelBilbao requested a review from a team as a code owner November 28, 2025 22:00
Copilot AI review requested due to automatic review settings November 28, 2025 22:00
@ManuelBilbao ManuelBilbao added L2 Rollup client L1 Ethereum client ci Github actions, build, tests, etc labels Nov 28, 2025
@ethrex-project-sync ethrex-project-sync bot moved this to In Review in ethrex_l1 Nov 28, 2025
Copy link
Contributor

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 support for building ARM64 Docker images for both L1 and L2 variants of ethrex, enabling deployment on ARM-based platforms.

  • Implements multi-architecture Docker builds using GitHub Actions matrix strategy for both amd64 and arm64
  • Introduces architecture-specific solc binary downloads in the Dockerfile
  • Creates multi-arch Docker manifests by combining individual platform builds

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
Dockerfile Adds conditional logic to download the appropriate solc binary based on architecture (aarch64 vs x86_64)
.github/workflows/tag_release.yaml Refactors Docker build job to use matrix strategy for multi-platform builds and adds publish-docker job to create multi-arch manifests
.github/workflows/tag_latest.yaml Updates image retagging logic to use docker buildx imagetools for multi-arch manifest manipulation
.github/actions/build-docker/action.yml Adds platforms input parameter to support building for specific architectures

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

Copy link
Collaborator

@MegaRedHand MegaRedHand left a comment

Choose a reason for hiding this comment

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

LGTM. Also, copilot raises some maybe-valid points

Comment on lines +30 to +33
platforms:
description: "Comma-separated list of platforms to build for"
required: false
default: "linux/amd64"
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think the description is stale. This is not a list

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Although in most cases it'd be a single platform (for perfomance issues), it can technically be a list

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Also addressed Copilot comments

arch: amd64
- platform: ubuntu-22.04-arm
arch: arm64
runs-on: ${{ matrix.platform }}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Docker supports cross-platform builds using QEMU, but in my tests there were to much slower than build them in parallel natively

@ManuelBilbao ManuelBilbao added this pull request to the merge queue Dec 2, 2025
Merged via the queue into main with commit b35bab5 Dec 2, 2025
47 checks passed
@ManuelBilbao ManuelBilbao deleted the docker_arm_support branch December 2, 2025 14:37
@github-project-automation github-project-automation bot moved this from In Review to Done in ethrex_l1 Dec 2, 2025
@github-project-automation github-project-automation bot moved this to Done in ethrex_l2 Dec 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Github actions, build, tests, etc L1 Ethereum client L2 Rollup client

Projects

Status: Done
Status: Done

Development

Successfully merging this pull request may close these issues.

Compile contracts correctly in docker images for ARM targets

4 participants