tuto 1: done

This commit is contained in:
nemunaire 2017-10-09 00:08:33 +02:00
commit 13bd205b1b
6 changed files with 152 additions and 29 deletions

View file

@ -3,25 +3,34 @@
Projet et rendu
===============
## Sujet
## Projet
Écrivez un `Dockerfile` pour conteneriser un client netsoul.
Écrivez un script `mycloud-run.sh` pour automatiser le lancement de
votre instance personnelle d'`owncloud`. Une attention particulière
devra être apportée à la manière dont vous gérerez le rappel du script
pour éventuellement relancer un conteneur qui se serait arrêté
(évidemment sans perdre les données).
Vous pouvez utiliser le client de votre choix, comme par exemple
[tumsoul.py](https://virli.nemunai.re/misc/tumsoul_0.3.3.py).
À la fin de son exécution, le script affichera un lien utilisable sur l'hôte
pour se rendre sur la page de connexion. Une autre machine de votre réseau
local devrait également pouvoir accéder à la plate-forme, simplement en
renseignant l'IP de votre machine et en ajoutant éventuellement des règles de
pare-feu (mais cette dernière partie n'est pas demandée, gardez simplement en
tête que cela doit pouvoir être fait manuellement au cas par cas : sur une
machine sans pare-feu configurée, cela ne demande pas d'étape supplémentaire).
Une fois construit, le conteneur doit se lancer comme cela :
Votre script devra se limiter aux notions vues durant ce TP (ie. sans utiliser
`docker-compose` ou `docker stack` que l'on verra au prochain TP). Il pourra
cependant faire usage des commandes `docker OBJECT inspect` pour ne pas avoir à
parser les retours des commandes lisibles par les humains.
```
docker run -e NETSOUL_LOGIN="login_x" -e PASSSOCKS="xnigol42" netsoul
```
Cette instance devra utiliser une base de données MySQL (lancée par vos soins
dans un autre conteneur) et contenir ses données dans un ou plusieurs volumes
(afin qu'elles persistent à une mise à jour des conteneurs par exemple).
Passer la configuration d'un conteneur dans des variables d'environnement est
une méthode couramment utilisée. Ces variables sont récupérées et traitées par
le script
d'[ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#/entrypoint). Ce
qui permet de n'utiliser la ligne de commande que pour des indiquer le
programme à lancer et ses arguments.
L'exécution doit être la plus sécurisée possible (pas de port MySQL exposé sur
l'hôte par exemple, etc.) et la plus respectueuse des bonnes pratiques que l'on
a pu voir durant ce premier cours.
## Modalité de rendu
@ -50,11 +59,8 @@ Voici une arborescence type:
login_x-TP1/webserver
login_x-TP1/webserver/Dockerfile
login_x-TP1/webserver/index.html
login_x-TP1/webserver/datavolume-run.sh
login_x-TP1/netsoul
login_x-TP1/netsoul/Dockerfile
login_x-TP1/netsoul/docker-entrypoint.sh
login_x-TP1/netsoul/tumsoul.py
login_x-TP1/mycloud
login_x-TP1/mycloud/mycloud-run.sh
```
## Signature du rendu