Repository navigation
Conversation
…, and test it in CI The Dockerfile installed from an unpinned ./wheels directory that nothing produced, and its command (bin/run-queue.sh relative to the storage volume) could not resolve. build-image.sh now verifies a signed release archive against the pinned vendor key, extracts it, and builds with --network none from the release's lock-pinned wheels. docker-compose.yml runs a named, never-pulled image with an absolute command. test-container.sh builds it in CI, refuses a tampered archive, shows a missing wheel fails the build, and runs the runner on the compose network with no route out.
…ad the root-owned audit log from inside the image
This was referenced Nov 5, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the on-prem deployment work. Stacked on #1918 (base
agent/142-c2), which addsbin/build-release.shand theflow-onprem-offlineCI job.What this does
The container option in
deploy/on-premdidn't work as shipped. The Dockerfile installedopenadapt-flow[privacy]from a./wheelsdirectory that nothing produced and that wasn't pinned to the lock. Its command,deploy/on-prem/bin/run-queue.sh(andbin/run-queue.shin docker-compose.yml), was a relative path resolved from the storage volume, so the runner could not start. Nothing built or ran the image.bin/build-image.shbuilds the image from a signed release archive (the onebuild-release.shmakes). It checks the signature against the pinned vendor key with the same code asinstall.sh --update, refuses a bad archive before calling docker, extracts the archive with the bounded extractor, and runsdocker build --network none. pip only sees the release's own lock-pinned wheels, so a missing wheel fails the build instead of reaching an index. It tagsopenadapt-flow-onprem:<version>and candocker saveit.pip check. It uses an absolute command path. The base image defaults topython:3.12-slimpinned by digest and must already be loaded on the host.OPENADAPT_FLOW_IMAGE(required, no default) withpull_policy: neverand the absolute run-queue path. The internal network and the no-ports rule are unchanged.bin/test-container.shruns in theflow-onprem-offlinejob, after the releases are staged and before the egress-blocked install. It checks that:Testing
dockerthat records its arguments and the build context:release/(VERSION, requirements.lock.txt, 89 wheels) andon-prem/, and calleddocker build --network none --pull=false.docker build -q, pip's error never reached the log, so the missing-wheel build failed for the right reason but the test couldn't tell; it now uses--progress=plain. The runner is root in the image and audit-log.sh makes the audit directory 0700, so the host could not read the log; the test now reads it from inside the image.Not tested