virli/tutorial/dockerfiles/dockerfile-ex.md
2022-09-30 23:34:15 +02:00

50 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

::::: {.exercice}
Pour mettre en application tout ce que nous venons de voir, réalisons le
`Dockerfile` du service web [`youp0m`](https://you.p0m.fr/) que nous avons
déjà utilisé précédemment.
Pour réaliser ce genre de contribution, on ajoute généralement un `Dockerfile`
à la racine du dépôt.
Vous pouvez cloner le dépôt de sources de `youp0m` à :\
<https://git.nemunai.re/nemunaire/youp0m.git>
Pour compiler le projet, vous pouvez utiliser dans votre `Dockerfile`
des instructions similaires à cela :
<div lang="en-US">
```dockerfile
FROM golang:1.18
COPY . /go/src/git.nemunai.re/youp0m
WORKDIR /go/src/git.nemunai.re/youp0m
RUN go build -tags dev -v
```
</div>
::::: {.question}
#### Que faire des ressources statiques HTML/CSS/JS ? {-}
L'exemple ci-dessus compile uniquement le code Go. À l'exécution, le
binaire s'attendra à trouver un dossier `static/` dans le dossier
courant. Ce dossier peut être changé en ajoutant l'option `-static
NEWPATH` aux paramètres de lancement.
:::::
Remarquez la puissance de Docker : vous n'avez sans doute pas de compilateur Go
installé sur votre machine, et pourtant, en quelques minutes et à partir du
seul code source de l'application et d'un `Dockerfile`, vous avez pu compiler sur
votre poste le binaire attendu. WOW, non ?
À vous de compléter le `Dockerfile` afin de reproduire le comportement
de l'image `registry.nemunai.re/youp0m` que nous avions utilisé :
<div lang="en-US">
```
docker container run -d -P youp0m
```
</div>
:::::