Source commit: 5792a1a4e1cb24ff71b1535d4b582ef980880752 Public tree identity: sha256:eea1f740446827ef10e4892923c13f13077c9e03438f2bf53d7f90536fb4cf95
34 lines
935 B
Markdown
34 lines
935 B
Markdown
# Environments
|
|
|
|
Declare environments in the bundle under:
|
|
|
|
~~~text
|
|
envs/<name>/Containerfile
|
|
envs/<name>/Dockerfile
|
|
~~~
|
|
|
|
Reference one by logical name:
|
|
|
|
~~~rust
|
|
use clusterflux::env;
|
|
|
|
let linux = env!("linux");
|
|
~~~
|
|
|
|
Bundle inspection reports every discovered environment and its digest:
|
|
|
|
~~~bash
|
|
clusterflux bundle inspect --project .
|
|
~~~
|
|
|
|
The bundle definition is authoritative for every spawn. The coordinator passes
|
|
the declared environment identity and digest in the TaskSpec, and the node
|
|
resolves that exact definition. A same-named local recipe with different bytes
|
|
is rejected rather than substituted.
|
|
|
|
On Linux, container-backed environments use rootless Podman. Clusterflux does
|
|
not enable privileged containers by default.
|
|
|
|
A task may use a bind-mounted local checkout for speed. That source path is
|
|
non-hermetic. Choose a source snapshot when you need a reproducible input
|
|
identity independent of the current working tree.
|