Skip to content

Docker guide: the runtime stage needs libatomic1 for Node.js 25 and later #3219

Open

Description

@FluteBlade

Documentation is

  • Missing
  • Outdated
  • Confusing
  • Not sure

Explain in Detail

The "Production: SSR / Node.js server app" Dockerfile copies the resolved Node.js binary into debian:bookworm-slim. Official Linux builds link libatomic from Node.js 25 on (BUILDING.md, nodejs/node#60790), and the slim image doesn't include it, so with Node.js 26 the runtime stage fails to start:

node: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory

The "Smaller still" tip has the same gap: gcr.io/distroless/cc doesn't include libatomic1 either, while distroless's Node.js images do.

Your Suggestion for Changes

Install it in the runtime stage (apt-get install -y --no-install-recommends libatomic1), and in the tip either name distroless's Node.js image or mention the library.

Relevant Page

https://viteplus.dev/guide/docker

Reproduction (Optional)

No response

Steps to reproduce (Optional)

No response

Activity

  1. Norbiros commented on Oct 24, 2026

    @Norbiros

    I think it's important to make it clear that this is a temporary fix and that it will eventually be resolved (either through a Node.js hotfix or by fixing their build system), so we don't end up with this additional library installation step sticking around in all Dockerfiles for years to come.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions