Skip to content

fix(docker): install libatomic before Playwright setup - #46124

Open
mikebridge wants to merge 1 commit into
apache:masterfrom
mikebridge:fix/docker-playwright-libatomic
Open

mikebridge wants to merge 1 commit into
apache:masterfrom
mikebridge:fix/docker-playwright-libatomic

Conversation

@mikebridge

Copy link
Copy Markdown
Contributor

SUMMARY

TL;DR: Install libatomic1 before Playwright setup in the full Superset image.

Playwright's bundled Node requires libatomic.so.1. Without it, uncached full-image builds fail during playwright install-deps, before Playwright can install its browser prerequisites. Install the OS library alongside the existing full-image dependencies; the lean image and dependency pins are unchanged.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Not applicable. Before: master's full-image build fails loading libatomic.so.1. After: the affected stage builds successfully locally on amd64.

TESTING INSTRUCTIONS

docker buildx build --platform linux/amd64 --target superset --no-cache-filter superset --progress plain --load -t superset-libatomic-check:amd64 .

Passed with the affected stage uncached. Also verified Chromium launches and renders a page through Playwright as the image's default user. Changed-file pre-commit passed. Arm64 was not built locally; CI should validate it.

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@codeant-ai-for-open-source

Copy link
Copy Markdown
Contributor

CodeAnt  CodeAnt PR Risk

🟢  Low Risk

  • The PR appears safe to merge; no actionable issues were identified in the review.

Assessed commit: dc98aa912ba8

@netlify

netlify Bot commented Nov 9, 2026

Copy link
Copy Markdown

✅ Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit dc98aa9
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6af259ae41814d165d018869
😎 Deploy Preview https://deploy-preview-46124--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@sadpandajoe
sadpandajoe self-requested a review November 10, 2026 00:23

@gabotorresruiz gabotorresruiz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks @mikebridge. Reproduced on the pinned python:3.11-slim-trixie base: Playwright 1.65.0 bundles Node 26, which exits on libatomic.so.1 on both amd64 and arm64 and runs once libatomic1 is installed, so this covers the arm64 build too. The websocket node copied from node:24-trixie-slim runs without it, so keeping it out of lean is right. LGTM, one note inline.

Comment thread Dockerfile
# Playwright's bundled Node needs libatomic before installing browser dependencies.
# Keep these extra dependencies out of the minimal `lean` stage.
RUN /app/docker/apt-install.sh \
libatomic1 \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The INCLUDE_CHROMIUM step in python-common runs playwright install-deps on the same base without libatomic1, so INCLUDE_CHROMIUM=true docker compose build still fails the same way, as does the -lean example in docker-builds.mdx. Cover both here, or a follow-up?

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants