posit-dev / posit-dev/images-shared

🏗️ Self-service execution-environment image creation

Open
#700 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cvp:3 docker epic tdp:1
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-maintained deps/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 -min images — 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 --interactive instead.
  • "Install every package from a repo" mode.
  • Full package-level/environment locks

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.