Skip to content

feat(offload): add docker-offload-plugin deb/rpm packaging - #562

Open
nicksieger wants to merge 3 commits into
docker:mainfrom
nicksieger:offload-packaging
Open

nicksieger wants to merge 3 commits into
docker:mainfrom
nicksieger:offload-packaging

Conversation

@nicksieger

@nicksieger nicksieger commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add deb/rpm packaging for the docker-offload CLI plugin (pkg/offload), for ubuntu2404, ubuntu2604 and rockylinux8 on linux/amd64 and linux/arm64.
  • The package build compiles the plugin from source in dh_auto_build and the rpm %build, through the ce-release make target of the source tree, as pkg/model does.
  • The source repo is private, so there is no PKG_REPO/PKG_REF clone. The caller passes the vendored source tree as the src named context, and builds run from the source repo's own workflow. Offload is excluded from the nightly package list (.pkgs.yml).
  • New bake variables: VERSION (with v prefix), COMMIT, BUILD and DATE, passed to the make target, and PKG_BUILD_ENV_FILE, which adds an optional build-env file secret to the pkg target. Packages that don't mount it are unaffected.
  • GO_VERSION is pinned to the release toolchain (1.27.3), and the strip overrides are kept, so the build is reproducible and the packaged binary matches the release binary.

🤖 Generated with Claude Code

@nicksieger
nicksieger requested a review from a team as a code owner November 9, 2026 21:49
Comment thread pkg/offload/deb/control Resolved
Comment thread pkg/offload/Dockerfile Resolved
Comment thread pkg/offload/verify.Dockerfile Resolved
Comment thread docker-bake.hcl Outdated
Comment on lines +95 to +96
# Packages only the prebuilt linux binaries; darwin and windows ship through the source repo.
offload = ["linux/amd64", "linux/arm64"]

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think ideally, we'd also publish static binaries through download.docker.com for the other platforms. While GitHub "works" to distribute binaries, it's not always ideal, and having a more "official" distribution channel through download.docker.com is good to have.

(we're in process of providing static binaries for all packages that we also provide deb / rpm packages for).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I'd like to do this eventually, I have some tickets to follow up on mac and windows binaries, so will revisit in another PR.

Add Linux packaging recipes for the docker-offload CLI plugin
(pkg/offload) and wire the package into docker-bake.hcl: PKGS_BASE,
PKG_PLATFORMS_BASE, PKG_DISTROS, a VERSION/OFFLOAD_BIN variable pair,
and a _pkg-offload target.

Packages prebuilt, signed docker-offload-linux-<arch> binaries rather
than building from source, same deliberate exception as sbx. No
PKG_REPO/PKG_REF defaults, since the Dockerfile never consumes those
args (no git clone, no metadata stage).

Signed-off-by: Nick Sieger <nick@nicksieger.com>
Compile the plugin in the package build (dh_auto_build, rpm %build)
through the ce-release make target of the source tree, instead of
packaging prebuilt binaries.

- source tree passed in as the src named context, dependencies
  vendored; no git clone
- VERSION (v prefix), COMMIT, BUILD, DATE bake variables passed to
  the make target
- optional build-env file secret via PKG_BUILD_ENV_FILE
- GO_VERSION pinned to the release toolchain (1.27.3)
- strip overrides kept so the packaged binary matches the release
  binary
- offload excluded from the nightly package list

Signed-off-by: Nick Sieger <nick@nicksieger.com>
- debhelper-compat 13, as in docker#550
- debian 13 trixie defaults for the distro and Go image variant, as
  in docker#567
- xx 1.10.0

Signed-off-by: Nick Sieger <nick@nicksieger.com>
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