From 8861b6f881a4320f3f4c4c69f2443930e88ce1dd Mon Sep 17 00:00:00 2001
From: "iliya.saroukha" <iliya.saroukhanian@etu.hesge.ch>
Date: Sat, 1 Jun 2024 22:30:11 +0200
Subject: [PATCH] feat: finished lab8

---
 content/08_dockerfiles.md | 48 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/content/08_dockerfiles.md b/content/08_dockerfiles.md
index 7ce3e89..bcc6f87 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"]
+```
+
-- 
GitLab