Save tuto corrections
This commit is contained in:
parent
f5ee6b8534
commit
10448a6c8d
115 changed files with 1423 additions and 1289 deletions
|
|
@ -3,13 +3,13 @@
|
|||
Mon premier webservice
|
||||
----------------------
|
||||
|
||||
C'est parti, nous allons déployer notre premier service !
|
||||
C'est parti, nous allons déployer notre premier service !
|
||||
|
||||
Il s'agit d'un service montrant une image aléatoire à chaque chargement de
|
||||
page : <https://you.p0m.fr/>.
|
||||
page : <https://you.p0m.fr/>.
|
||||
|
||||
|
||||
Nous pouvons télécharger et lancer le service grâce à :
|
||||
Nous pouvons télécharger et lancer le service grâce à :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -17,22 +17,22 @@ docker container run -i nemunaire/youp0m
|
|||
```
|
||||
</div>
|
||||
|
||||
Cette fois-ci, ce n'est pas un shell que nous obtenons[^defaultcmd] : il semblerait que le
|
||||
service soit lancé et écoute sur le port 8080. Est-ce le cas ?
|
||||
Cette fois-ci, ce n'est pas un shell que nous obtenons[^defaultcmd] : il semblerait que le
|
||||
service soit lancé et écoute sur le port 8080. Est-ce le cas ?
|
||||
|
||||
<http://localhost:8080>
|
||||
|
||||
[^defaultcmd]: Chaque conteneur dispose d'une commande par défaut : les images
|
||||
[^defaultcmd]: Chaque conteneur dispose d'une commande par défaut : les images
|
||||
de base telles que les distributions vont lancer un shell, tandis que les
|
||||
conteneurs de service vont lancer leur service directement.
|
||||
|
||||
Non ! Car le service est contenerisé ! Il s'exécute dans son coin, sans
|
||||
Non ! Car le service est contenerisé ! Il s'exécute dans son coin, sans
|
||||
interférer avec son hôte.
|
||||
|
||||
|
||||
### Redirection de ports
|
||||
|
||||
Nous pouvons rediriger le port avec l'argument <span lang="en-US">`-p dst_host:src_cntr`</span> :
|
||||
Nous pouvons rediriger le port avec l'argument <span lang="en-US">`-p dst_host:src_cntr`</span> :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -43,7 +43,7 @@ docker container run -i -p 8080:8080 nemunaire/youp0m
|
|||
Cette fois, nous pouvons accéder au service.
|
||||
|
||||
Pour le moment, le service ne dispose d'aucune image à afficher, vous pouvez
|
||||
utiliser cette syntaxe pour ajouter une image :
|
||||
utiliser cette syntaxe pour ajouter une image :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -51,7 +51,7 @@ base64 monimage.jpg | curl --data @- http://localhost:8080/api/images/monimage
|
|||
```
|
||||
</div>
|
||||
|
||||
Si vous n'êtes pas particulièrement inspiré, vous pouvez ajouter ces images :
|
||||
Si vous n'êtes pas particulièrement inspiré, vous pouvez ajouter ces images :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -63,13 +63,13 @@ done
|
|||
</div>
|
||||
|
||||
|
||||
### Prêt pour la production ?
|
||||
### Prêt pour la production ?
|
||||
|
||||
Avec l'option `-i`, nous pouvons encore transmettre les signaux de terminaison
|
||||
au conteneur. C'est pratique lorsque l'on développe, mais en production, notre
|
||||
service ne s'exécutera pas dans notre terminal !
|
||||
service ne s'exécutera pas dans notre terminal !
|
||||
|
||||
On utilise l'option `-d` pour lancer le conteneur en tâche de fond :
|
||||
On utilise l'option `-d` pour lancer le conteneur en tâche de fond :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -79,7 +79,7 @@ docker container run -d -p 8080:8080 nemunaire/youp0m
|
|||
|
||||
À partir de l'identifiant renvoyé par cette commande (que l'on peut également
|
||||
obtenir avec un `docker container ls`), nous pouvons consulter les logs du
|
||||
service (en fait, les sorties standard et d'erreur) :
|
||||
service (en fait, les sorties standard et d'erreur) :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -88,15 +88,15 @@ docker container logs 0123456789abcdef
|
|||
</div>
|
||||
|
||||
|
||||
### Une autre instance ?
|
||||
### Une autre instance ?
|
||||
|
||||
Maintenant que nous avons un clone de <https://you.p0m.fr/>, nous voulons
|
||||
absolument un clone de <https://food.p0m.fr/> !
|
||||
absolument un clone de <https://food.p0m.fr/> !
|
||||
|
||||
Il s'agit du même service, mais ce ne sont pas les mêmes images.
|
||||
|
||||
On ne peut pas utiliser le même port sur la machine hôte, mais pour le reste,
|
||||
il s'agit des mêmes options\ :
|
||||
il s'agit des mêmes options\ :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -104,10 +104,10 @@ docker container run -d -p 8081:8080 nemunaire/youp0m
|
|||
```
|
||||
</div>
|
||||
|
||||
Voyons le résultat : <http://localhost:8081>
|
||||
Voyons le résultat : <http://localhost:8081>
|
||||
|
||||
Nous avons réussi à lancer deux conteneurs à partir de la même image, et on
|
||||
voit bien que ceux-ci ne partagent pas leur système de fichiers : notre
|
||||
voit bien que ceux-ci ne partagent pas leur système de fichiers : notre
|
||||
nouvelle instance est encore immaculée.
|
||||
|
||||
|
||||
|
|
@ -123,18 +123,19 @@ Outre les arguments que l'on peut passer au premier processus du conteneur, la
|
|||
plupart des images peuvent adapter leur comportement en fonction de variables
|
||||
d'environnement que l'on passe en paramètre.
|
||||
|
||||
Cette bonne pratique est recommandée par <https://12factor.net/>, qui détaille
|
||||
les raisons qui devraient pousser les développeurs à privilégier les variables
|
||||
d'environnements aux arguments sur la ligne de commande.
|
||||
Cette bonne pratique est recommandée par
|
||||
[`12factor.net`](https://12factor.net/), qui détaille les raisons qui devraient
|
||||
pousser les développeurs à privilégier les variables d'environnements aux
|
||||
arguments sur la ligne de commande.
|
||||
|
||||
Il se trouve que les conteneurs `youp0m` peuvent créer le fichier `htpasswd`,
|
||||
s'ils sont démarrés avec les variables d'environnement :
|
||||
s'ils sont démarrés avec les variables d'environnement :
|
||||
|
||||
- `YOUP0M_USERNAME` : nom d'utilisateur pour l'administrateur (par défaut admin) ;
|
||||
- `YOUP0M_PASSWORD` : mot de passe de l'utilisateur.
|
||||
- `YOUP0M_USERNAME` : nom d'utilisateur pour l'administrateur (par défaut admin) ;
|
||||
- `YOUP0M_PASSWORD` : mot de passe de l'utilisateur.
|
||||
|
||||
Pour ajouter une variable d'environnement, cela se passe dans la commande
|
||||
`run`, en ajoutant une ou plusieurs options `-e` :
|
||||
`run`, en ajoutant une ou plusieurs options `-e` :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
@ -143,13 +144,14 @@ docker container run -e YOUP0M_PASSWORD=foobar -p 8080:8080 nemunaire/youp0m
|
|||
</div>
|
||||
|
||||
Une fois lancé, ce conteneur exposera une interface d'administration à cette
|
||||
adresse : <http://localhost:8080/admin/>.
|
||||
adresse :\
|
||||
<http://localhost:8080/admin/>.
|
||||
|
||||
|
||||
### Arrêt des conteneurs et persistance des données
|
||||
|
||||
Lorsque l'on souhaite stopper un conteneur lancé en tâche de fond, on utilise
|
||||
son identifiant dans la commande suivante :
|
||||
son identifiant dans la commande suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue