Source commit: f6c01dca61eefca1a7431c48878a04dbb7a3f710 Public tree identity: sha256:3df7a93eb61c8c5c7841ac9ad6eedec89b167fd77fdd32e9fc31b57c10207387
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.
|