virli/tutorial/docker-basis/ex-owncloud.md

49 lines
2.1 KiB
Markdown
Raw Normal View History

::::: {.exercice}
2020-10-28 22:16:34 +00:00
Pour mettre en pratiques toutes les notions que l'on a vues jusque-là, écrivez un
2020-10-28 22:16:34 +00:00
script `mycloud-run.sh` pour automatiser le lancement de votre instance
personnelle de [`nextcloud`](https://hub.docker.com/_/nextcloud/) ou
d'[`owncloud`](https://hub.docker.com/r/owncloud/server/). 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).
À 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
2022-02-24 19:43:43 +00:00
tête que cela doit pouvoir être fait manuellement au cas par cas: sur une
2020-10-28 22:16:34 +00:00
machine sans pare-feu configurée, cela ne demande pas d'étape supplémentaire).
Votre script devra se limiter aux notions vues durant cette partie du TP
2022-02-24 19:43:43 +00:00
(ie. sans utiliser `docker-compose` ou `docker stack` que l'on verra par la
suite). Il pourra cependant faire usage des commandes `docker OBJECT inspect`
pour ne pas avoir à faire d'analyse syntaxique sur les retours des commandes
lisibles par les humains.
2020-10-28 22:16:34 +00:00
2022-02-24 19:43:43 +00:00
Cette instance devra utiliser une base de données MySQL (lancée par votre
script 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).
2020-10-28 22:16:34 +00:00
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 jusque-là.
2020-10-28 22:16:34 +00:00
2022-02-24 19:43:43 +00:00
### Exemple d'exécution {-}
2020-10-28 22:16:34 +00:00
<div lang="en-US">
```bash
42sh$ ./mycloud-run.sh
http://localhost:12345/
42sh$ #docker kill db
42sh$ ./mycloud-run.sh # le script relancera une base de données,
# sans avoir perdu les données
http://localhost:12345/
```
</div>
:::::