Slim public Chromium runtime package set#274
Draft
IlyaasK wants to merge 1 commit into
Draft
Conversation
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.
Summary
This is the public-repo equivalent of the private runtime slimming PR. It narrows the public Chromium runtime package install lists so the final headless/headful images stop carrying build-time tooling that is not used by the current runtime path.
What changed:
build-essential,libssl-dev,git, andsoftware-properties-common.build-essential,libssl-dev,zlib1g-dev,libbz2-dev,libreadline-dev,libsqlite3-dev,git,libncursesw5-dev,xz-utils,tk-dev,libxml2-dev,libxmlsec1-dev,libffi-dev, andliblzma-dev.add-apt-repository ppa:mozillateam/ppaflow and itssoftware-properties-commondependency.python2from the later runtime install block.gpg-agentwithgpg. The Envoy installer needs thegpgbinary forgpg --dearmor; it does not need the agent package.The net diff is only the two Dockerfiles.
Why
The image already uses multi-stage builds for native/Xorg/neko build inputs. Those build-stage dependencies stay where they are.
The packages removed here were still installed in the final runtime image, where they increase image size and runtime surface area without being referenced by the current launch/supervisor/API/browser path.
Git History / Removal Rationale
The package history points to old image lineage rather than current runtime requirements.
build-essential,gcc,make5c71470(WebRTC OSS launch, PR #13) under a Dockerfile comment labeled# Python/pyenv reqs. That commit moved the old unikraft/WebRTC image structure intoimages/chromium-*.libssl-dev,zlib1g-dev,libbz2-dev,libreadline-dev,libsqlite3-dev,libncursesw5-dev,tk-dev,libxml2-dev,libxmlsec1-dev,libffi-dev,liblzma-dev# Python/pyenv reqsblock from5c71470. These are typical compile headers for Python/native dependency builds.git5c71470, and also used in builder/release contexts elsewhere in the repo.gitremains available in builder contexts where it is actually referenced.xz-utils5c71470, likely to unpack source archives during legacy build flows..tar.xzsource archives. Downloader/build stages that need archive handling keep their own tools.software-properties-common/add-apt-repository5c71470:ppa:mozillateam/ppafor headful andppa:xtradeb/appsfor Chromium in the older image path.python25c71470with the old WebRTC/neko/demo runtime setup. The remaining obvious Python script path is the legacy headful demo payload handled separately.gpg-agentgpg.gpgbecauseshared/envoy/install-proxy.shrunsgpg --dearmor, and removes only the agent package.Measured Impact
Controlled local builds were run with
--no-cacheand unique cache IDs during the split work.Exact final public numbers can shift slightly because this branch intentionally keeps
gpgafter the Envoy installer dependency was confirmed.Validation
Ran locally:
docker build --check -f images/chromium-headless/image/Dockerfile .docker build --check -f images/chromium-headful/Dockerfile .cd server && go test -run TestDoesNotExist ./e2ecd server && go test $(go list ./... | grep -v '/e2e$')Unknowns / Final Gates
git, compilers, Python 2,xz, or development headers. The current repo/runtime paths do not show that dependency, but that is still the compatibility decision to make before merging.Fast Docker Review
This PR follows the fast-build guidance by keeping build-only packages out of the final runtime image. The Xorg/neko/native build inputs stay in builder stages; the runtime stage only keeps packages needed by the current browser/session path.
Against the checklist:
COPYstatements or early source copies are added.gpgstays because the Envoy install step actually needs thegpgbinary;gpg-agentdoes not stay just because it used to be adjacent.