diff --git a/content/08_dockerfiles.md b/content/08_dockerfiles.md index 7ce3e89a1831e40cb89fb9adb85df439e465469a..bcc6f878cee61b9150737f2bd0073fc872664f6f 100644 --- a/content/08_dockerfiles.md +++ b/content/08_dockerfiles.md @@ -363,3 +363,51 @@ asciicat 1.0 5f22c52d66b2 7 minutes ago 890MB ``` - Le facteur de taille gagnée est de $\sim 69$ (noice) fois. + +### Partie 3 + +### Création d'archives locales pour `ubuntu:22.04` et `alpine:3.20` + +En premier lieu, afin de pouvoir s'assurer que nous nous baserons sur des images +"figées" dans le temps, nous devons d'abord exporter le `rootfs` locaux en +instanciant des containers à partir des images `ubuntu:22.04` et `alpine:3.20`. + +```bash +docker run --rm -it ubuntu:22.04 /bin/sh +``` + +Nous instancions le(s) container(s) en mode intéractif de sorte à pouvoir se +détacher sans qu'il ne se termine immédiatement en exécutant <Ctrl-p> et +<Ctrl-q>. + +À présent, nous pouvons créer les archives en exécutant la commande suivante : + +```bash +docker export <nom_container> > <nom_archive>.tar +``` + +Le nom du container peut être retrouvé en listant les containers actifs avec la +commande `docker ps`. + +### Création de l'image `asciicat` à partir des archives locales + +À présent, nous pouvons utiliser ces archives pour notre image `asciicat`. + +```bash +FROM scratch as BUILDER +ADD ubuntu_22.04.tar / + +RUN apt update -y && apt install -y golang ca-certificates +RUN go install github.com/alfg/asciicat@latest + + +FROM scratch +ADD alpine_3.20.tar / + +RUN apk update +COPY --from=builder /root/go/bin/asciicat /usr/bin +COPY . . + +ENTRYPOINT ["usr/bin/asciicat"] +``` +