posit-dev / posit-dev/images-shared
🏗️ Self-service execution-environment image creation
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 0
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 22
Description
Background
container-generator is a self-service Shiny app that generates Dockerfiles/Singularity definitions plus Posit Connect off-host values.yaml, letting a customer pick an OS, R/Python/Quarto versions, and Pro Drivers and download a working build. It's a demand signal for a bakery-native answer — this epic is that answer, scoped to bakery + images-examples rather than a second tool to maintain.
Definition of done
A customer with no bakery experience can go from "I need R 4.4.2 + Python 3.12 + Quarto on Rocky 9" to a tested, buildable Containerfile — and, once the dependent work below lands, a generated Connect off-host values.yaml — using bakery and images-examples alone.
Depends on (not filed here — not yet real issues anywhere)
- Project-level artifact templates rendered over an image's version matrix, to generate Connect
values.yaml. Blocking:Image.template_path(posit_bakery/config/image/image.py:299) and the render loop (matrix.py:538-543) scope template rendering to one image at a time; there's no aggregation point across images yet. - Automatic R system-dependency resolution via
pak::pkg_sysreqs, replacing hand-maintaineddeps/system-packages.txt.
Both were identified as prerequisites while scoping this epic but were never filed as standalone issues anywhere — worth doing before or alongside the sub-issues below.
Checklist (break out into issues when picked up)
- Pro Drivers on a bare-OS base, not just atop Posit's own
-minimages — could fold into the worked-example sub-issue rather than a standalone macro. - Apptainer/Singularity output — open question, not yet decided. The Posit Team image fleet management epic scoped this down to a consumption doc only (convert bakery-built OCI images via
apptainer build); this epic's actual premise (hand the customer whatever artifact they asked for) is what reopens it.
Non-goals
- GUI front end — resolved in favor of
bakery create image --interactiveinstead. - "Install every package from a repo" mode.
- Full package-level/environment locks
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading posit_bakery/config/image/image.py around Image.template_path and matrix.py around the render loop, then review bakery create image --interactive and the images-examples project. Map the unresolved dependencies and checklist items before implementation. Done means a customer can use bakery and images-examples to produce a tested, buildable Containerfile for the stated R/Python/Quarto environment.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- build-system, devops, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100