diff --git a/Makefile b/Makefile index d0de7e054feb12845fb940ca4d4975b8be8d1c75..01035ee1a5562121bc02893a9ca550bb5375aba6 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,3 @@ -OPTIONS = --filter=pandoc-numbering -OPTIONS += --filter=pandoc-crossref - PDFOPTIONS = --highlight-style kate PDFOPTIONS += --pdf-engine xelatex PDFOPTIONS += --number-sections diff --git a/content/08_dockerfiles.md b/content/08_dockerfiles.md new file mode 100644 index 0000000000000000000000000000000000000000..8a4b4063df8427fa20d58facd81c83a173dd6e85 --- /dev/null +++ b/content/08_dockerfiles.md @@ -0,0 +1,63 @@ +\newpage + +# Dockerfiles + +## Préréquis + +**Vérifier que le paquet `docker-buildx` soit installé la machine exécutant +le daemon `dockerd` sinon c'est la hess...** + +### Pour les rookies + +```bash +sudo apt install docker-buildx +``` + +### Pour les gens normaux + +```bash +sudo pacman -S docker-buildx +``` + +## Exercice 1 + +### Création d'une image à partir du Dockerfile + +```bash +docker buildx build . -t dockerfiles_ex01:1.0 +``` + +### Contenu du Dockerfile + +```bash +FROM alpine:latest +LABEL maintainer="Yoda" +ADD files.tar.gz /dir_tar +RUN mkdir /dir_add +COPY file0* /dir_add/ +CMD ["ls", "-al", "/dir_tar", "/dir_add"] +``` + +#### Explication du Dockerfile + +- `FROM` : spécifie l'image parent de notre nouvelle image, en l'occurrence +le parent sera `alpine:latest`. + +- `LABEL` : cette commande ajoute des métadonnées concernant l'image. Dans notre +cas, on lui spécifie la paire `<clé><valeur>` $\rightarrow$ `maintainer:"Yoda"`. + +- `ADD` : on spécifie qu'on souhaite non seulement de copier (la commande +`COPY` suffirait) la _tarball_ `files.tar.gz` mais aussi de l'extraire suite +au fait que `ADD` est supérieur à `COPY`. Cette _tarball_ sera extraite dans le +répertoire `/dir_tar` du container. + +- `RUN` : indique que l'on souhaite exécuter un commande, donc le répertoire +`/dir_add` se créé. + +- `COPY` : va simplement copier les fichiers locaux commençant par `files0` dans +le répertoire `/dir_add` du container. + +- `CMD` : spécifie la commande (avec ses arguments) qui sera lancée au moment +de l'instantiation du container. Dans notre cas, au lancement du container +le contenu des répertoire `/dir_tar` et `/dir_add` seront affichés sous forme +de liste (`-l`). Les fichier cachés seront aussi affichés grâce au flag (`-a`).