FastAPI?
C'est un framework Web Python moderne et rapide. Il semble être populaire récemment, alors je l'ai adopté pour les affaires.
Documentation officielle https://github.com/tiangolo/fastapi
L'environnement était différent selon les membres et l'introduction ne pouvait pas se dérouler sans heurts, Ceci est un mémo car tout le monde peut désormais partager le même environnement de travail en utilisant Docker.
Nous procéderons selon la procédure officielle.
C'est OK si la structure finale du fichier est comme ça. Super simple.
Dockerfile
Installez les modules répertoriés dans la section Installation de la documentation officielle. Il fonctionne tout seul une fois construit, c'est donc pratique car vous n'avez pas à rechercher manuellement le module requis.
Dockerfile
FROM python:3.7
WORKDIR /var/www/html
RUN pip install fastapi uvicorn
main.py
Ceci est également écrit en référence à l'élément de Exemple. C'est une API qui renvoie des objets Hello World lors de l'accès à la racine.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
docker-compose.yaml
Il agit comme un pont entre Dockerfile
et main.py
.
Après avoir installé le module Python à l'aide du Dockerfile Reportez-vous à l'élément Exécuter et appuyez sur la commande pour démarrer le serveur Fast API.
Ici, il est configuré pour démarrer sur le port 9004.
docker-compose.yaml
version: '3'
services:
app:
container_name: FastAPI
build: ./docker
volumes:
- ./src:/var/www/html
ports:
- "9004:9004"
command: uvicorn main:app --reload --host 0.0.0.0 --port 9004
Démarrez et créez le conteneur avec docker-compose.
$ docker-compose up --build
Creating network "docker_fastapi_default" with the default driver
Building app
Step 1/3 : FROM python:3.7
---> 879165535a54
Step 2/3 : WORKDIR /var/www/html
---> Using cache
---> 31d5c58e6177
Step 3/3 : RUN pip install fastapi uvicorn
---> Using cache
---> 430430eecf7f
Successfully built 430430eecf7f
Successfully tagged docker_fastapi_app:latest
Creating FastAPI ... done
Attaching to FastAPI
FastAPI | INFO: Uvicorn running on http://0.0.0.0:9004 (Press CTRL+C to quit)
FastAPI | INFO: Started reloader process [1]
FastAPI | INFO: Started server process [7]
FastAPI | INFO: Waiting for application startup.
FastAPI | INFO: Application startup complete.
Les modules requis ont été installés et le serveur Fast API a démarré.
Accédons-y avec la commande curl.
$ curl http://localhost:9004
{"Hello":"World"}
Réaction telle que définie dans main.py
!
Vous pouvez facilement configurer un serveur API en utilisant FastAPI! C'est bien de pouvoir partager le même environnement avec moins de fichiers en utilisant Docker: sparkles:
Puisque vous pouvez également exécuter des scripts shell en Python, Il est pratique d'implémenter des commandes de déploiement automatique et de faire quelque chose comme "pseudo Jenkins". ~~ Ne dites pas que vous devriez utiliser Jenkins ~~
Recommended Posts