> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conteneurs

> Définitions des conteneurs, état observé des conteneurs et privilèges propres à chaque conteneur.

<h2 id="container">
  Container
</h2>

Source : [src/cwsandbox/\_types.py:1181](https://github.com/coreweave/cwsandbox-client/blob/v1.14.2/src/cwsandbox/_types.py#L1181)

```python theme={"system"}
class Container(*, image: str, name: str | None = None, command: str | None = None, args: Sequence[str] | None = None, environment_variables: Mapping[str, str] | None = None, resources: ResourceOptions | dict[str, Any] | None = None, mounted_files: Sequence[Mapping[str, Any]] | None = None, volume_mounts: Sequence[VolumeMount | Mapping[str, Any]] | None = None, secrets: Sequence[Secret | Mapping[str, Any]] | None = None, working_dir: str | None = None, image_pull_credentials: ImagePullCredentials | Mapping[str, Any] | None = None, primary: bool = False)
```

Un conteneur utilisateur dans une sandbox.

Passez une liste à `Sandbox.run(containers=[...])`. Cette forme est incompatible
avec les kwargs prévus pour un conteneur unique (`container_image`,
`command`/`args`, `resources`, `mounted_files`, `secrets`,
`image_pull_credentials`, `environment_variables`,
`security_context`, `working_dir`) et n’hérite pas de ces
mêmes champs depuis `SandboxDefaults`.

Un seul conteneur : `primary` peut être omis ou valoir False (cette ligne est alors le conteneur principal).
Plusieurs conteneurs : une seule ligne doit définir `primary=True`, et chaque ligne
doit avoir un nom et des ressources. Le GPU n’est autorisé que sur le conteneur principal.

**Attributs**

* `name` (`str | None`) : libellé DNS-1123. Facultatif pour un conteneur unique ; requis lorsque
  plusieurs conteneurs sont spécifiés.
* `command` (`str | None`) : point d’entrée. Si la valeur est vide ou None, le point d’entrée de l’image est utilisé. Les arguments peuvent
  être définis sans commande.
* `args` (`Sequence[str] | None`) : arguments de la commande ou du point d’entrée de l’image.
* `environment_variables` (`Mapping[str, str] | None`) : variables d’environnement injectées uniquement dans ce conteneur.
* `resources` (`ResourceOptions | dict[str, Any] | None`) : CPU/mémoire/GPU pour ce conteneur. Requis lorsque
  plusieurs conteneurs sont spécifiés.
* `mounted_files` (`Sequence[Mapping[str, Any]] | None`) : fichiers écrits dans ce conteneur au démarrage.
* `volume_mounts` (`Sequence[VolumeMount | Mapping[str, Any]] | None`) : volumes de la sandbox à monter dans ce conteneur.
* `secrets` (`Sequence[Secret | Mapping[str, Any]] | None`) : secrets injectés depuis le magasin de secrets, pour ce conteneur uniquement.
* `working_dir` (`str | None`) : répertoire de travail de la commande. Doit être un chemin absolu
  s’il est défini.
* `image_pull_credentials` (`ImagePullCredentials | Mapping[str, Any] | None`) : identifiants d’authentification permettant de récupérer des images depuis un registre privé.
* `primary` (`bool`) : si True, ce conteneur gère le cycle de vie de la sandbox et constitue
  la cible par défaut pour exec/logs/files. Par défaut : `False`.

***

<h2 id="containerstatus">
  ContainerStatus
</h2>

Source : [src/cwsandbox/\_sandbox.py:335](https://github.com/coreweave/cwsandbox-client/blob/v1.14.2/src/cwsandbox/_sandbox.py#L335)

```python theme={"system"}
class ContainerStatus(*, name: str, state: SandboxStatus, exit_code: int | None = None, restart_count: int = 0)
```

État observé d’un conteneur dans une sandbox.

Les champs `status` / `returncode` de la sandbox restent la propriété du conteneur principal. Cette ligne correspond à la
vue qu’a le kubelet de ce conteneur nommé.

**Attributs**

* `exit_code` (`int | None`) : Code de sortie, une fois que le conteneur a atteint un état terminal.
  None tant que le conteneur est encore en cours d’exécution.
* `restart_count` (`int`) : Nombre de redémarrages du conteneur. Par défaut : `0`.

***

<h2 id="securitycontext">
  SecurityContext
</h2>

Source : [src/cwsandbox/\_types.py:993](https://github.com/coreweave/cwsandbox-client/blob/v1.14.2/src/cwsandbox/_types.py#L993)

```python theme={"system"}
class SecurityContext(*, run_as_user: int | None = None, run_as_group: int | None = None, privileged: bool | None = None, allow_privilege_escalation: bool | None = None, read_only_root_filesystem: bool | None = None, capabilities_add: Sequence[str] | None = None, capabilities_drop: Sequence[str] | None = None, seccomp_profile: str | None = None)
```

Privilèges du conteneur côté invité, bornés par la politique de l’exécuteur.

Les paramètres qui donnent accès à l’hôte (réseau de l’hôte, PID de l’hôte, hostPath) ne peuvent pas
être définis ici. `privileged`, les capacités, run-as et seccomp
s’appliquent à l’intérieur du périmètre d’isolation de la sandbox.

**Attributs**

* `run_as_user` (`int | None`) : UID du point d’entrée. S’il n’est pas défini, l’utilisateur de l’image est utilisé.
* `run_as_group` (`int | None`) : GID du point d’entrée. S’il n’est pas défini, le groupe de l’image est utilisé.
* `privileged` (`bool | None`) : Exécuter en mode privilégié à l’intérieur du périmètre d’isolation.
* `allow_privilege_escalation` (`bool | None`) : Autoriser un processus à obtenir plus de privilèges
  que son parent.
* `read_only_root_filesystem` (`bool | None`) : Monter le système de fichiers racine du conteneur en lecture seule.
* `capabilities_add` (`Sequence[str] | None`) : Capacités Linux à ajouter (par ex. `"SYS_PTRACE"`).
* `capabilities_drop` (`Sequence[str] | None`) : Capacités Linux à retirer.
* `seccomp_profile` (`str | None`) : `"RuntimeDefault"` ou `"Unconfined"`.

***

<h2 id="imagepullcredentials">
  ImagePullCredentials
</h2>

Source : [src/cwsandbox/\_types.py:912](https://github.com/coreweave/cwsandbox-client/blob/v1.14.2/src/cwsandbox/_types.py#L912)

```python theme={"system"}
class ImagePullCredentials(*, registry: str, store: str, name: str, field: str = '')
```

Identifiants d’authentification permettant de récupérer des images depuis un registre privé, résolus à partir d’un magasin de secrets.

**Attributs**

* `field` (`str`) : champ de secret structuré facultatif. Par défaut : `''`.

***
