Aller au contenu
English

ContainerOptions

import type { ContainerOptions } from "@elie-laloum/outpost/providers/docker";
import type { ContainerOptions } from "@elie-laloum/outpost/providers/podman";
  • egressOptionnel
    EgressPolicy | undefined
    deny-all uniquement, appliqué par le réseau none. Une allowlist, ou des networks autres que none, échoue avec le code configuration dès la création.
  • repositoryModeOptionnel
    "mounted" | "isolated" | undefined
    mounted (par défaut) monte le worktree dans /workspace avec ses métadonnées Git. isolated rend le provider distant : l’historique est envoyé dans /tmp/outpost/workspace, les volumes ne peuvent pas exposer le dépôt hôte et la reprise de spéculation durable n’est pas disponible.
  • cachesOptionnel
    readonly DependencyCache[] | undefined
    Volumes nommés du moteur, montés dans /outpost/cache/<name>, qui survivent à la sandbox. Le volume dépend du dépôt, de l’image, de l’utilisateur, du nom et de la clé ; les volumes explicites ne doivent pas recouvrir /outpost/cache.
  • imageOptionnel
    string | undefined
    Image à exécuter, outpost:<nom du répertoire du dépôt> par défaut. Quand user est absent et que l’image déclare un autre utilisateur numérique que le vôtre, l’acquisition échoue avec le code provider.
  • userOptionnel
    { readonly uid: number; readonly gid: number; } | undefined
    UID et GID des commandes dans le conteneur, vos UID et GID hôtes par défaut (1000:1000 s’ils sont indisponibles).
  • volumesOptionnel
    readonly Volume[] | undefined
    Montages hôtes supplémentaires dans le conteneur.
  • variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables d’environnement définies pour chaque commande de la sandbox, en valeurs littérales. Une clé aussi déclarée par l’agent échoue avec le code configuration.
  • networksOptionnel
    string | readonly string[] | undefined
    Réseau ou réseaux du moteur à attacher, passés par —network.
  • groupsOptionnel
    readonly (string | number)[] | undefined
    Groupes supplémentaires de l’utilisateur du conteneur, passés par —group-add.
  • devicesOptionnel
    readonly string[] | undefined
    Périphériques hôtes exposés au conteneur, passés par —device.
  • cpusOptionnel
    number | undefined
    Limite CPU passée par —cpus ; doit être positive.
  • memoryMbOptionnel
    number | undefined
    Limite mémoire en mégaoctets, un entier d’au moins 64.
  • labelOptionnel
    false | "z" | "Z" | undefined
    Réétiquetage SELinux des montages sous Linux : z partagé (par défaut), Z privé, false montages simples.
  • retainOptionnel
    number | undefined
    Octets de fin de sortie conservés par flux, 65536 par défaut.
  • usernsOptionnel
    false | "keep-id" | undefined
    Espace de noms utilisateur Podman : keep-id conserve votre utilisateur et s’applique par défaut quand Outpost ne tourne pas en root ; false le désactive. Docker l’ignore.
export interface ContainerOptions {
  readonly egress?: EgressPolicy;
  readonly repositoryMode?: "mounted" | "isolated";
  readonly caches?: readonly DependencyCache[];
  readonly image?: string;
  readonly user?: {
    readonly uid: number;
    readonly gid: number;
  };
  readonly volumes?: readonly Volume[];
  readonly variables?: Variables;
  readonly networks?: string | readonly string[];
  readonly groups?: readonly (string | number)[];
  readonly devices?: readonly string[];
  readonly cpus?: number;
  readonly memoryMb?: number;
  readonly label?: "z" | "Z" | false;
  readonly retain?: number;
  readonly userns?: "keep-id" | false;
}