Apptainer Images
Builtin layers
Two .def recipes, layered:
Tag |
What’s inside |
When |
|---|---|---|
|
Ubuntu 24.04 + dev tools (git, gh, rust CLIs, mermaid, prettier, eslint, jsonlint, uv, pipx, tree, node 20) |
Default when |
|
|
Optional heavier layer |
Recipes ship in the pip wheel — no need to clone the repo to run sac image build.
Built artifacts live under ~/.scitex/agent-container/containers/, never in git.
<site-packages>/scitex_agent_container/containers/
apptainer-{base,scitex}.def ← canonical SSoT
Build
sac image build # :base SIF (default; OS + dev tools, ~15-25 min)
sac image build scitex # :scitex SIF (FROM :base + scitex[all], ~10-20 min)
sac image build --sandbox # writable sandbox dir instead of frozen SIF
Sandbox / freeze workflow
Sandbox once, refresh when you want, freeze when stable:
sac image build scitex --sandbox # one-time: writable sandbox
sac image update sandbox/ # any time: pip install --upgrade scitex[all]
sac image freeze sandbox/ scitex-2.28.15.sif # bake to immutable SIF
sac image switch 2.28.15 # atomic flip (previous remembered)
sac image rollback # restore previous version
sac image snapshot -o env.json # full reproducibility capsule
The build / sandbox / version / rollback verbs all delegate to
scitex-container.
Pinning a custom image
Set spec.apptainer.image in your spec.yaml:
spec:
apptainer:
image: ~/.scitex/agent-container/containers/sac-base/sac-base.sif
Or use a relative path (resolved relative to spec.yaml):
spec:
apptainer:
image: ./my-custom.sif