46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
# distrobox-images
|
|
|
|
Dockerfiles for heavy software (Houdini, ...) run via
|
|
[distrobox](https://github.com/89luca89/distrobox), built once and pushed to
|
|
a private registry instead of rebuilding on every `distrobox create`.
|
|
|
|
## Convention
|
|
|
|
One self-contained folder per app:
|
|
|
|
```
|
|
<soft>/
|
|
Dockerfile # often multi-stage: shared base + amd / nvidia variant
|
|
<soft>-run # launcher installed in the image (app entrypoint)
|
|
README.md # specifics: prerequisites, build + push, distrobox create, gotchas
|
|
```
|
|
|
|
No shared base image across different apps — each has its own system
|
|
dependencies, sharing more than the folder structure doesn't buy anything.
|
|
|
|
Two GPU variants per app when OpenGL/Vulkan rendering matters (viewport,
|
|
preview):
|
|
- `<soft>-amd` — Mesa baked into the image (radeonsi / RADV), also works for
|
|
Intel.
|
|
- `<soft>-nvidia` — nothing baked in; the host's NVIDIA driver is mounted at
|
|
runtime by `distrobox --nvidia`.
|
|
|
|
If GPU rendering doesn't matter for a given app, one image is enough — don't
|
|
duplicate on principle.
|
|
|
|
## Private registry
|
|
|
|
The apps a meant to be pushed to the private registry: `docker.slambin.fr`.
|
|
And then run using distrobox or podman.
|
|
|
|
```bash
|
|
podman run -d --name registry --restart=always \
|
|
-p 5000:5000 -v registry-data:/var/lib/registry \
|
|
registry:2
|
|
```
|
|
|
|
## Apps
|
|
|
|
- [`houdini/`](houdini/README.md) — Houdini Apprentice
|
|
- [`davinci/`](davinci/README.md) — DaVinci Resolve
|