2018-10-18 05:05:36 +00:00
|
|
|
|
\newpage
|
|
|
|
|
|
|
|
|
|
Projet et rendu
|
|
|
|
|
===============
|
|
|
|
|
|
|
|
|
|
Projet
|
|
|
|
|
------
|
|
|
|
|
|
|
|
|
|
Avec l'aide d'un `Dockerfile` *multi-stage*, réalisez l'image la plus petite
|
2018-11-16 01:38:41 +00:00
|
|
|
|
possible (partant d'un `FROM scratch`{.dockerfile}), qui permette d'utiliser la
|
|
|
|
|
[page de compte à rebours](https://virli.nemunai.re/countdown.html) avec cette
|
2021-09-23 00:55:18 +00:00
|
|
|
|
configuration pour nginx :
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-10-23 23:59:35 +00:00
|
|
|
|
<div lang="en-US">
|
2018-10-18 05:05:36 +00:00
|
|
|
|
```conf
|
2018-11-16 01:38:41 +00:00
|
|
|
|
events {}
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-11-16 01:38:41 +00:00
|
|
|
|
http {
|
|
|
|
|
default_type text/html;
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-11-16 01:38:41 +00:00
|
|
|
|
index countdown.html;
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-11-16 01:38:41 +00:00
|
|
|
|
server {
|
|
|
|
|
listen 8080;
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-11-16 01:38:41 +00:00
|
|
|
|
root /srv/http;
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-11-16 01:38:41 +00:00
|
|
|
|
rewrite "^/[0-9]+:[0-9]{2}$" /countdown.html;
|
|
|
|
|
rewrite "^/[0-9]+$" /countdown.html;
|
2018-10-18 05:05:36 +00:00
|
|
|
|
}
|
2018-11-16 01:38:41 +00:00
|
|
|
|
}
|
2018-10-18 05:05:36 +00:00
|
|
|
|
```
|
2018-10-23 23:59:35 +00:00
|
|
|
|
</div>
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
|
|
|
|
Vous pouvez envisager dans un premier temps d'extraire de l'image `nginx`, le
|
|
|
|
|
binaire `nginx` lui-même et observer les différents problèmes. Vous pourrez
|
|
|
|
|
ensuite par exemple envisager de compiler `nginx` (vous trouverez les sources
|
2021-09-23 00:55:18 +00:00
|
|
|
|
du projet : <http://nginx.org/download>).
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
|
|
|
|
Dans tous les cas, votre `Dockerfile` devra être facilement maintenable
|
|
|
|
|
(notamment en cas de nouvelle version du serveur web), et vous devrez apporter
|
|
|
|
|
une attention particulière au suivi des bonnes pratiques d'écriture des
|
|
|
|
|
`Dockerfile`.
|
|
|
|
|
|
|
|
|
|
### Exemple d'exécution
|
|
|
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
|
```
|
2020-09-14 13:46:13 +00:00
|
|
|
|
42sh$ docker image build -t countdown countdown
|
|
|
|
|
42sh$ docker container run -d -P countdown
|
2018-11-16 01:38:41 +00:00
|
|
|
|
42sh$ firefox http://localhost:32198/42:23
|
2018-10-18 05:05:36 +00:00
|
|
|
|
```
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
2018-10-04 03:49:16 +00:00
|
|
|
|
Modalités de rendu
|
|
|
|
|
------------------
|
|
|
|
|
|
|
|
|
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
|
|
|
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
|
|
|
|
|
|
|
|
|
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
|
|
|
|
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
|
|
|
|
rejet).
|
|
|
|
|
|
|
|
|
|
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
|
|
|
|
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
|
|
|
|
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
|
|
|
|
sera pas pris en compte.
|
|
|
|
|
|
2018-10-18 05:05:36 +00:00
|
|
|
|
Par ailleurs, n'oubliez pas de répondre à
|
2020-09-14 13:46:13 +00:00
|
|
|
|
[l'évaluation du cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=307).
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
2018-10-04 03:49:16 +00:00
|
|
|
|
|
|
|
|
|
Tarball
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
|
|
|
|
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
|
|
|
|
|
2018-10-18 05:05:36 +00:00
|
|
|
|
Voici une arborescence type (vous pourriez avoir des fichiers
|
2021-09-23 00:55:18 +00:00
|
|
|
|
supplémentaires) :
|
2018-10-04 03:49:16 +00:00
|
|
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
|
```
|
2018-11-16 01:38:41 +00:00
|
|
|
|
login_x-TP2/
|
|
|
|
|
login_x-TP2/youp0m/
|
|
|
|
|
login_x-TP2/youp0m/Dockerfile
|
|
|
|
|
login_x-TP2/youp0m/entrypoint.sh
|
|
|
|
|
login_x-TP2/youp0m/.dockerignore
|
|
|
|
|
login_x-TP2/youp0m/...
|
|
|
|
|
login_x-TP2/countdown/Dockerfile
|
|
|
|
|
(login_x-TP2/countdown/nginx.conf)
|
|
|
|
|
(login_x-TP2/countdown/countdown.html)
|
2018-10-04 03:49:16 +00:00
|
|
|
|
```
|
|
|
|
|
</div>
|
2018-10-18 05:05:36 +00:00
|
|
|
|
|
|
|
|
|
Les deux fichiers `nginx.conf` et `countdown.html` seront écrasés par
|
|
|
|
|
les fichiers fournis lors de la correction, vous n'êtes pas donc
|
|
|
|
|
obligés de les embarquer dans votre rendu.
|