diff --git a/subject/nginx-static/Makefile b/subject/nginx-static/Makefile new file mode 100644 index 0000000..77467a6 --- /dev/null +++ b/subject/nginx-static/Makefile @@ -0,0 +1,12 @@ +include ../../tutorial/pandoc-opts.mk + +SOURCES = subject.md ex-nginx-static.md rendu.md end.md + + +all: subject.pdf + +subject.pdf: ${SOURCES} + pandoc ${PANDOCOPTS} -o $@ $+ + +clean:: + rm subject.pdf diff --git a/subject/nginx-static/end.md b/subject/nginx-static/end.md new file mode 100644 index 0000000..9dc41f2 --- /dev/null +++ b/subject/nginx-static/end.md @@ -0,0 +1 @@ +Bon courage ! diff --git a/subject/nginx-static/ex-nginx-static.md b/subject/nginx-static/ex-nginx-static.md new file mode 100644 index 0000000..8242335 --- /dev/null +++ b/subject/nginx-static/ex-nginx-static.md @@ -0,0 +1,48 @@ +Projet +====== + +Avec l'aide d'un `Dockerfile` *multi-stage*, réalisez l'image la plus petite +possible (partant d'un `FROM scratch`{.dockerfile}), qui permette d'utiliser la +[page de compte à rebours](https://virli.nemunai.re/countdown.html) avec cette +configuration pour nginx : + +
+```conf +events {} + +http { + default_type text/html; + + index countdown.html; + + server { + listen 8080; + + root /srv/http; + + rewrite "^/[0-9]+:[0-9]{2}$" /countdown.html; + rewrite "^/[0-9]+$" /countdown.html; + } +} +``` +
+ +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 +du projet : ). + +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 + +
+``` +42sh$ docker image build -t countdown countdown +42sh$ docker container run -d -P countdown +42sh$ firefox http://localhost:32198/42:23 +``` +
diff --git a/subject/nginx-static/rendu.md b/subject/nginx-static/rendu.md new file mode 100644 index 0000000..dc994ec --- /dev/null +++ b/subject/nginx-static/rendu.md @@ -0,0 +1,43 @@ +Rendu +===== + +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 , 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. + +Par ailleurs, n'oubliez pas de répondre à +[l'évaluation du cours](https://www.epitaf.fr/moodle/mod/quiz/view.php?id=307). + + +Tarball +------- + +Tous les fichiers identifiés comme étant à rendre sont à placer dans une +tarball (pas d'archive ZIP, RAR,\ ...). + +Voici une arborescence type (vous pourriez avoir des fichiers supplémentaires, +cela dépendra de votre avancée dans le projet) : + +
+``` + login_x-project_2/ + login_x-project_2/Dockerfile +(login_x-project_2/nginx.conf) +(login_x-project_2/countdown.html) +``` +
+ +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. diff --git a/subject/nginx-static/subject.md b/subject/nginx-static/subject.md new file mode 100644 index 0000000..b6c6101 --- /dev/null +++ b/subject/nginx-static/subject.md @@ -0,0 +1,6 @@ +--- +title: Virtualisation légère -- Projet n^o^ 2 +author: Pierre-Olivier *nemunaire* Mercier +institute: EPITA +date: EPITA -- SRS 2020 +...