Skip to content

CI never builds Dockerfile.serve — the non-root USER 10001 shipped unverified #635

Description

@macanderson

An unbuilt Dockerfile is shipping on main

packaging/docker/Dockerfile.serve:31 sets a non-root USER 10001. The image has never been built. The Docker daemon was unavailable when the change was made (docker info failed), and — verified again today — nothing in .github/workflows/ builds this image.

So a cold --release --locked build of a 15-crate workspace inside the container has never run, and the runtime preconditions for dropping to an unprivileged uid were checked by reading only:

  • port 8080 set by ENV at L28,
  • the binary landing world-executable in /usr/local/bin,
  • useradd shipping in debian:bookworm-slim.

Every one of those is plausible. None is verified. The failure mode is that stella serve in a container is broken for whoever builds it first — and because nothing builds it, that will be a user.

The .dockerignore change that shipped alongside it is likewise unexercised: no image build, no before/after build-context measurement.

  • Add a CI job that builds packaging/docker/Dockerfile.serve and runs the resulting image far enough to prove it serves on 8080 as uid 10001.

Acceptance: the image builds in CI, and a smoke request against the container succeeds.

Triaged out of #622 (rows 39, 40) as worth doing — the only "no witness" row where the artifact is user-facing and completely uncovered.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important — next in linearea:ciGitHub Actions, release pipeline, packaging

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions