Aller au contenu
English

createPodmanSandboxProvider

import { createPodmanSandboxProvider } from "@elie-laloum/outpost/providers/podman";

Crée le provider de conteneur sur le moteur Podman, avec les mêmes options que Docker. Quand Outpost ne tourne pas en root, userns keep-id conserve votre utilisateur par défaut ; sur macOS, une machine Podman doit être démarrée.

Exemple complet et règles détaillées.

  • optionsOptionnel
    ContainerOptions | undefined
    Image de conteneur, mode de dépôt, montages, environnement, réseau et limites de ressources.
  • options.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.
  • options.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.
  • options.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.
  • options.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.
  • options.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).
  • options.volumesOptionnel
    readonly Volume[] | undefined
    Montages hôtes supplémentaires dans le conteneur.
  • options.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.
  • options.networksOptionnel
    string | readonly string[] | undefined
    Réseau ou réseaux du moteur à attacher, passés par —network.
  • options.groupsOptionnel
    readonly (string | number)[] | undefined
    Groupes supplémentaires de l’utilisateur du conteneur, passés par —group-add.
  • options.devicesOptionnel
    readonly string[] | undefined
    Périphériques hôtes exposés au conteneur, passés par —device.
  • options.cpusOptionnel
    number | undefined
    Limite CPU passée par —cpus ; doit être positive.
  • options.memoryMbOptionnel
    number | undefined
    Limite mémoire en mégaoctets, un entier d’au moins 64.
  • options.labelOptionnel
    false | "z" | "Z" | undefined
    Réétiquetage SELinux des montages sous Linux : z partagé (par défaut), Z privé, false montages simples.
  • options.retainOptionnel
    number | undefined
    Octets de fin de sortie conservés par flux, 65536 par défaut.
  • options.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.

SandboxProvider

export declare const createPodmanSandboxProvider: (
  options?: ContainerOptions,
) => SandboxProvider;