-
Notifications
You must be signed in to change notification settings - Fork 0
Support OS-less images in Bakery #386
Copy link
Copy link
Open
Labels
cvp:1Minor enhancements, such as those suggested by customers that fit with planned workMinor enhancements, such as those suggested by customers that fit with planned workdockerRelated to container images we produceRelated to container images we producetdp:1The individual working on it notices.The individual working on it notices.
Metadata
Metadata
Assignees
Labels
cvp:1Minor enhancements, such as those suggested by customers that fit with planned workMinor enhancements, such as those suggested by customers that fit with planned workdockerRelated to container images we produceRelated to container images we producetdp:1The individual working on it notices.The individual working on it notices.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Problem
Bakery requires every image version to have at least one OS entry with non-empty
extensionandtagDisplayNamefields. Both fields enforce regex patterns that require at least one character (^[a-zA-Z0-9_-]+$and^[a-zA-Z0-9_.-]+$), making empty strings invalid.This prevents building images that don't need an OS, such as:
scratchthat only copy static filesFROM scratchContext
The
workbench-session-initimage was recently refactored to useFROM scratchsince it only contains pre-built static binaries from thersp-session-multitarball. The builder stage uses Ubuntu to download and extract the tarball, but the final image has no OS. Despite this, Bakery still requires an OS entry (Ubuntu 24.04), resulting in misleading tags likeworkbench-session-init:2026.01.1-ubuntu-24.04for an image that contains no Ubuntu.Relevant code:
posit_bakery/config/shared.pylines 14-34 defineExtensionFieldandTagDisplayNameFieldwith patterns that reject empty strings.Proposed solution
Allow OS
extensionandtagDisplayNameto be empty strings (or omitted entirely) so that:Containerfile.jinja2)workbench-session-init:2026.01.1with no-ubuntu-24.04suffix)This could be implemented by:
^[a-zA-Z0-9_.-]*$References