Samuel Karp, ingeniør hos Amazon, der beskæftiger sig med udviklingen af Linux-distributionen Bottlerocket og containerisoleringsteknologier til AWS, udvikler baseret på jail-omgivelserne i FreeBSD et nyt runtime, runj, til at sikre isoleret kørsel af containere, der er tilpasset specifikationen fra OCI (Open Container Initiative). Projektet positioneres som eksperimentelt, udviklet i fritiden fra hovedarbejdet, og befinder sig stadig i prototypefasen. Koden er skrevet i Go og distribueres under BSD-licensen.
Når udviklingen er nået til det ønskede niveau, kan projektet potentielt vokse til at være i stand til at anvende runj som erstatning for det standard runtime i Docker- og Kubernetes-systemer, ved at bruge FreeBSD til at køre containere i stedet for Linux. Fra OCI runtime er der i øjeblikket implementeret kommandoer til oprettelse, sletning, kørsel, tvungen afslutning og evaluering af containerens tilstand. Indholdet af containeren er baseret på et standard eller reduceret FreeBSD-miljø.
Da der i OCI-specifikationen stadig mangler støtte for FreeBSD, er der i projektet udviklet en række yderligere parametre relateret til konfigurationen af jail og FreeBSD, som planlægges sendt til inkludering i den primære OCI-specifikation. For at styre jail bruges værktøjerne jail, jls, jexec, kill og ps fra FreeBSD, uden direkte opkald til systemopkald. Fremover nævnes tilføjelsen af støtte til administration af ressourcebegrænsninger via RCTL-interfacet i kernen.
Udover det eget runtime udvikles der i projektets repository også et eksperimentelt lag til brug sammen med containerd-runtime (bruges i Docker), modificeret til at understøtte FreeBSD. For at konvertere rootfs FreeBSD til et OCI-kompatibelt containerbillede tilbydes et specielt værktøj. Det færdige billede kan senere importeres til containerd.
Kilde: opennet.ru
