Source commit: 01875e88a3e25379c309489f9f057dd97c0d37de Public tree identity: sha256:8f37a1aa0cc8f408975daf9cabbe193f8f4c169c6d25e8795e67a3ed5083c76b
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.
|