Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/cd.docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ jobs:
platforms: linux/amd64
- variety: debian
platforms: linux/amd64,linux/arm64
- variety: slim
platforms: linux/amd64,linux/arm64
- variety: ubuntu
platforms: linux/amd64,linux/arm64
runs-on: ubuntu-latest
Expand Down
11 changes: 11 additions & 0 deletions docker/Dockerfile.debian
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@ RUN install -m 755 /pkgx/$(uname -m) /usr/local/bin/pkgx
RUN install -m 755 /pkgx/pkgm /usr/local/bin/pkgm

FROM debian:stable-slim AS stage1
# The default `pkgxdev/pkgx` image is the "fat" one: it carries the base system
# dev libraries a hermetic pkgx/brewkit toolchain still links against (libc
# headers, libstdc++/libgcc, &c). Without these, compiling anything fails with
# e.g. `stdlib.h: No such file or directory`. See `Dockerfile.slim` for the
# minimal runtime-only image (`pkgxdev/pkgx:slim`).
# g++ (not build-essential) pulls the default-gcc libstdc++/libgcc dev libs
# without make/dpkg-dev, and version-agnostically — no rot-prone version pin.
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
libc6-dev g++ libudev-dev netbase ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=stage0 /usr/local/bin/pkgx /usr/local/bin/pkgm /usr/local/bin/

CMD ["/bin/bash"]
Expand Down
14 changes: 14 additions & 0 deletions docker/Dockerfile.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
FROM debian:stable-slim AS stage0
COPY ./products/* /pkgx/
RUN install -m 755 /pkgx/$(uname -m) /usr/local/bin/pkgx
RUN install -m 755 /pkgx/pkgm /usr/local/bin/pkgm

# The "slim" image: bare debian + the pkgx/pkgm binaries, nothing else. Great for
# running pkgx-installed tools with the smallest footprint. If you intend to
# *compile* anything (eg. `bk`, or pip packages with C extensions), use the fat
# `pkgxdev/pkgx` (default) image instead — it ships the base build/dev libraries.
FROM debian:stable-slim AS stage1
COPY --from=stage0 /usr/local/bin/pkgx /usr/local/bin/pkgm /usr/local/bin/

CMD ["/bin/bash"]
ENTRYPOINT ["/usr/local/bin/pkgx"]
Loading