Skip to content

Fix Docker publish failure on arm64 and remove QEMU from CI/CD#1085

Merged
konard merged 7 commits into
mainfrom
issue-1084-0b5c406905e0
Jan 9, 2026
Merged

Fix Docker publish failure on arm64 and remove QEMU from CI/CD#1085
konard merged 7 commits into
mainfrom
issue-1084-0b5c406905e0

Conversation

@konard

@konard konard commented Jan 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixed the Docker publish workflow failure on arm64 architecture and removed unnecessary QEMU from CI/CD entirely.

Changes

1. Fix arm64 browser installation (original issue)

  • Added architecture detection before browser installation
  • On arm64: Install only supported browsers (Chromium, Firefox, WebKit)
  • On amd64: Install all browsers (Chromium, Chrome, Firefox, WebKit, Edge)
  • Improved error handling to prevent set -e from exiting on non-fatal browser installation failures

2. Remove QEMU from CI/CD (new feedback)

  • Removed unnecessary QEMU and Docker Buildx setup from docker-pr-check job
  • The PR check only builds for linux/amd64, so QEMU was never needed there
  • The docker-publish jobs already use native ARM64 runners (ubuntu-24.04-arm) - no QEMU emulation

Technical Details

  • Chromium is functionally equivalent to Chrome for most use cases
  • Playwright on arm64 continues to use Chromium instead of Chrome for Testing builds
  • This is a known platform limitation documented by Playwright
  • Native ARM64 runners eliminate the 10-100x QEMU emulation slowdown

Test Plan

  • Verify Docker build succeeds on amd64 (PR check)
  • Verify Docker build succeeds on arm64 (release job)
  • Verify browsers are properly installed on each architecture
  • Verify Playwright MCP functionality works with available browsers

Files Changed

  • .github/workflows/release.yml - Removed QEMU/Buildx from docker-pr-check
  • scripts/ubuntu-24-server-install.sh - Added architecture detection for browser installation
  • docs/case-studies/issue-1084/ - Case study documentation with timeline and analysis

Related Links

Fixes #1084

🤖 Generated with Claude Code

Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: #1084
@konard konard self-assigned this Jan 9, 2026
Chrome and Edge are not available for Linux arm64 through Playwright.
This fix detects arm64 architecture and installs only supported browsers
(Chromium, Firefox, WebKit) on that platform.

Root cause: The `playwright install chrome` command fails with
"ERROR: not supported on Linux Arm64" when run on arm64 systems.
This caused the Docker build to fail on arm64 while succeeding on amd64.

Changes:
- Add architecture detection before browser installation
- Skip Chrome and Edge installation on arm64 (use Chromium instead)
- Improve error handling to prevent set -e from exiting on non-fatal failures
- Add case study documentation with timeline and analysis

Fixes #1084

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard changed the title [WIP] Docker publish is broken Fix Docker publish failure on arm64 by skipping Chrome/Edge installation Jan 9, 2026
konard and others added 2 commits January 9, 2026 03:48
Apply Prettier formatting to analysis.md to pass CI lint checks.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mark action items as completed and add implementation notes describing
the fix approach.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard marked this pull request as ready for review January 9, 2026 03:36
@konard

konard commented Jan 9, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $9.698603 USD
  • Calculated by Anthropic: $6.501644 USD
  • Difference: $-3.196959 (-32.96%)
    📎 Log file uploaded as GitHub Gist (979KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard

konard commented Jan 9, 2026

Copy link
Copy Markdown
Contributor Author

I see QEMU steps, can we remove QEMU steps in all our CI/CD entirely? We have can have separate images on GitHub Actions level if needed, and we have docker access in GitHub Actions, so no need to use QEMU at all, as it may slow and can also be a reason of freezes.

@konard konard marked this pull request as draft January 9, 2026 13:58
@konard

konard commented Jan 9, 2026

Copy link
Copy Markdown
Contributor Author

🤖 AI Work Session Started

Starting automated work session at 2026-01-09T13:58:29.566Z

The PR has been converted to draft mode while work is in progress.

This comment marks the beginning of an AI work session. Please wait working session to finish, and provide your feedback.

The docker-pr-check job only builds for linux/amd64 using standard
docker build (not buildx), so QEMU emulation and Docker Buildx are
not needed.

This addresses the feedback to remove QEMU from CI/CD entirely.
The docker-publish jobs already use native ARM64 runners
(ubuntu-24.04-arm) without QEMU, as implemented in PR #983.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard changed the title Fix Docker publish failure on arm64 by skipping Chrome/Edge installation Fix Docker publish failure on arm64 and remove QEMU from CI/CD Jan 9, 2026
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@konard konard marked this pull request as ready for review January 9, 2026 14:24
@konard

konard commented Jan 9, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $4.546821 USD
  • Calculated by Anthropic: $2.487121 USD
  • Difference: $-2.059700 (-45.30%)
    📎 Log file uploaded as GitHub Gist (566KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@konard konard merged commit 044ed38 into main Jan 9, 2026
20 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.

Docker publish is broken

1 participant