]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add French translation for `deployment/docker.md` (#3694)
authorRuidy <nemausatpro@gmail.com>
Tue, 5 Oct 2021 12:27:24 +0000 (14:27 +0200)
committerGitHub <noreply@github.com>
Tue, 5 Oct 2021 12:27:24 +0000 (14:27 +0200)
Co-authored-by: Sam Courtemanche <smlep.pro@gmail.com>
Co-authored-by: SebastiĂĄn RamĂ­rez <tiangolo@gmail.com>
docs/fr/docs/deployment/docker.md [new file with mode: 0644]
docs/fr/mkdocs.yml

diff --git a/docs/fr/docs/deployment/docker.md b/docs/fr/docs/deployment/docker.md
new file mode 100644 (file)
index 0000000..e4b59af
--- /dev/null
@@ -0,0 +1,182 @@
+# DĂ©ployer avec Docker
+
+Dans cette section, vous verrez des instructions et des liens vers des guides pour savoir comment :
+
+* Faire de votre application **FastAPI** une image/conteneur Docker avec une performance maximale. En environ **5 min**.
+* (Optionnellement) comprendre ce que vous, en tant que dĂ©veloppeur, devez savoir sur HTTPS.
+* Configurer un cluster en mode Docker Swarm avec HTTPS automatique, mĂȘme sur un simple serveur Ă  5 dollars US/mois. En environ **20 min**.
+* GĂ©nĂ©rer et dĂ©ployer une application **FastAPI** complĂšte, en utilisant votre cluster Docker Swarm, avec HTTPS, etc. En environ **10 min**.
+
+Vous pouvez utiliser <a href="https://www.docker.com/" class="external-link" target="_blank">**Docker**</a> pour le dĂ©ploiement. Il prĂ©sente plusieurs avantages comme la sĂ©curitĂ©, la rĂ©plicabilitĂ©, la simplicitĂ© de dĂ©veloppement, etc.
+
+Si vous utilisez Docker, vous pouvez utiliser l'image Docker officielle :
+
+## <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>
+
+Cette image est dotĂ©e d'un mĂ©canisme d'"auto-tuning", de sorte qu'il vous suffit d'ajouter votre code pour obtenir automatiquement des performances trĂšs Ă©levĂ©es. Et sans faire de sacrifices.
+
+Mais vous pouvez toujours changer et mettre Ă  jour toutes les configurations avec des variables d'environnement ou des fichiers de configuration.
+
+!!! tip "Astuce"
+    Pour voir toutes les configurations et options, rendez-vous sur la page de l'image Docker : <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
+
+## CrĂ©er un `Dockerfile`
+
+* Allez dans le rĂ©pertoire de votre projet.
+* CrĂ©ez un `Dockerfile` avec :
+
+```Dockerfile
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
+
+COPY ./app /app
+```
+
+### Applications plus larges
+
+Si vous avez suivi la section sur la crĂ©ation d' [Applications avec plusieurs fichiers](../tutorial/bigger-applications.md){.internal-link target=_blank}, votre `Dockerfile` pourrait ressembler Ă  ceci :
+
+```Dockerfile
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
+
+COPY ./app /app/app
+```
+
+### Raspberry Pi et autres architectures
+
+Si vous utilisez Docker sur un Raspberry Pi (qui a un processeur ARM) ou toute autre architecture, vous pouvez crĂ©er un `Dockerfile` Ă  partir de zĂ©ro, basĂ© sur une image de base Python (qui est multi-architecture) et utiliser Uvicorn seul.
+
+Dans ce cas, votre `Dockerfile` pourrait ressembler Ă  ceci :
+
+```Dockerfile
+FROM python:3.7
+
+RUN pip install fastapi uvicorn
+
+EXPOSE 80
+
+COPY ./app /app
+
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+## CrĂ©er le code **FastAPI**.
+
+* CrĂ©er un rĂ©pertoire `app` et y entrer.
+* CrĂ©ez un fichier `main.py` avec :
+
+```Python
+from typing import Optional
+
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+    return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: Optional[str] = None):
+    return {"item_id": item_id, "q": q}
+```
+
+* Vous devriez maintenant avoir une structure de rĂ©pertoire telle que :
+
+```
+.
+├── app
+│   â””── main.py
+└── Dockerfile
+```
+
+## Construire l'image Docker
+
+* Allez dans le rĂ©pertoire du projet (dans lequel se trouve votre `Dockerfile`, contenant votre rĂ©pertoire `app`).
+* Construisez votre image FastAPI :
+
+<div class="termy">
+
+```console
+$ docker build -t myimage .
+
+---> 100%
+```
+
+</div>
+
+## DĂ©marrer le conteneur Docker
+
+* ExĂ©cutez un conteneur basĂ© sur votre image :
+
+<div class="termy">
+
+```console
+$ docker run -d --name mycontainer -p 80:80 myimage
+```
+
+</div>
+
+Vous disposez maintenant d'un serveur FastAPI optimisĂ© dans un conteneur Docker. ConfigurĂ© automatiquement pour votre 
+serveur actuel (et le nombre de cƓurs du CPU).
+
+## VĂ©rifier
+
+Vous devriez pouvoir accĂ©der Ă  votre application via l'URL de votre conteneur Docker, par exemple : <a href="http://192.168.99.100/items/5?q=somequery" class="external-link" target="_blank">http://192.168.99.100/items/5?q=somequery</a> ou <a href="http://127.0.0.1/items/5?q=somequery" class="external-link" target="_blank">http://127.0.0.1/items/5?q=somequery</a> (ou Ă©quivalent, en utilisant votre hĂŽte Docker).
+
+Vous verrez quelque chose comme :
+
+```JSON
+{"item_id": 5, "q": "somequery"}
+```
+
+## Documentation interactive de l'API
+
+Vous pouvez maintenant visiter <a href="http://192.168.99.100/docs" class="external-link" target="_blank">http://192.168.99.100/docs</a> ou <a href="http://127.0.0.1/docs" class="external-link" target="_blank">http://127.0.0.1/docs</a> (ou Ă©quivalent, en utilisant votre hĂŽte Docker).
+
+Vous verrez la documentation interactive automatique de l'API (fournie par <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank">Swagger UI</a>) :
+
+![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png)
+
+## Documentation de l'API alternative 
+
+Et vous pouvez Ă©galement aller sur <a href="http://192.168.99.100/redoc" class="external-link" target="_blank">http://192.168.99.100/redoc</a> ou <a href="http://127.0.0.1/redoc" class="external-link" target="_blank">http://127.0.0.1/redoc</a> (ou Ă©quivalent, en utilisant votre hĂŽte Docker).
+
+Vous verrez la documentation automatique alternative (fournie par <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank">ReDoc</a>) :
+
+![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png)
+
+## Traefik
+
+<a href="https://traefik.io/" class="external-link" target="_blank">Traefik</a> est un reverse proxy/load balancer 
+haute performance. Il peut faire office de "Proxy de terminaison TLS" (entre autres fonctionnalitĂ©s).
+
+Il est intĂ©grĂ© Ă  Let's Encrypt. Ainsi, il peut gĂ©rer toutes les parties HTTPS, y compris l'acquisition et le renouvellement des certificats.
+
+Il est Ă©galement intĂ©grĂ© Ă  Docker. Ainsi, vous pouvez dĂ©clarer vos domaines dans les configurations de chaque application et faire en sorte qu'elles lisent ces configurations, gĂ©nĂšrent les certificats HTTPS et servent via HTTPS Ă  votre application automatiquement, sans nĂ©cessiter aucune modification de leurs configurations.
+
+---
+
+Avec ces informations et ces outils, passez Ă  la section suivante pour tout combiner.
+
+## Cluster en mode Docker Swarm avec Traefik et HTTPS
+
+Vous pouvez avoir un cluster en mode Docker Swarm configurĂ© en quelques minutes (environ 20 min) avec un processus Traefik principal gĂ©rant HTTPS (y compris l'acquisition et le renouvellement des certificats).
+
+En utilisant le mode Docker Swarm, vous pouvez commencer par un "cluster" d'une seule machine (il peut mĂȘme s'agir 
+d'un serveur Ă  5 USD/mois) et ensuite vous pouvez vous dĂ©velopper autant que vous le souhaitez en ajoutant d'autres serveurs.
+
+Pour configurer un cluster en mode Docker Swarm avec Traefik et la gestion de HTTPS, suivez ce guide :
+
+### <a href="https://medium.com/@tiangolo/docker-swarm-mode-and-traefik-for-a-https-cluster-20328dba6232" class="external-link" target="_blank">Docker Swarm Mode et Traefik pour un cluster HTTPS</a>
+
+### DĂ©ployer une application FastAPI
+
+La façon la plus simple de tout mettre en place, serait d'utiliser les [**GĂ©nĂ©rateurs de projet FastAPI**](../project-generation.md){.internal-link target=_blank}.
+
+Le gĂ©nerateur de projet adĂ©quat est conçu pour ĂȘtre intĂ©grĂ© Ă  ce cluster Docker Swarm avec Traefik et HTTPS dĂ©crit ci-dessus.
+
+Vous pouvez gĂ©nĂ©rer un projet en 2 min environ.
+
+Le projet gĂ©nĂ©rĂ© a des instructions pour le dĂ©ployer et le faire prend 2 min de plus.
index 4891a29caeac251884b868ccb312e551efb3123b..c1fb0f23d8ebdb737e450d000cfd9333bd568d1c 100644 (file)
@@ -60,6 +60,8 @@ nav:
 - Tutoriel - Guide utilisateur:
   - tutorial/background-tasks.md
 - async.md
+- DĂ©ploiement:
+  - deployment/docker.md
 - project-generation.md
 - alternatives.md
 - external-links.md