FastAPI?
Es ist ein modernes, schnelles Python-Webframework. Es scheint in letzter Zeit sehr beliebt zu sein, deshalb habe ich es für geschäftliche Zwecke übernommen.
Offizielle Dokumentation https://github.com/tiangolo/fastapi
Die Umgebung war je nach Mitglied unterschiedlich und die Einführung konnte nicht reibungslos verlaufen. Dies ist ein Memo, da jetzt jeder mit Docker dieselbe Arbeitsumgebung verwenden kann.
Wir werden nach dem offiziellen Verfahren vorgehen.
Es ist in Ordnung, wenn die endgültige Dateistruktur so ist. Super einfach.
Dockerfile
Installieren Sie die Module, die im Abschnitt Installation der offiziellen Dokumentation aufgeführt sind. Es wird beim Erstellen von selbst ausgeführt, ist also praktisch, da Sie nicht manuell nach dem erforderlichen Modul suchen müssen.
Dockerfile
FROM python:3.7
WORKDIR /var/www/html
RUN pip install fastapi uvicorn
main.py
Dies wird auch unter Bezugnahme auf den Punkt Beispiel geschrieben. Es ist eine API, die Hello World-Objekte zurückgibt, wenn auf das Stammverzeichnis zugegriffen wird.
main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
docker-compose.yaml
Es fungiert als Brücke zwischen "Dockerfile" und "main.py".
Nach der Installation des Python-Moduls mit der Docker-Datei Lesen Sie das Element Ausführen und drücken Sie den Befehl, um den Fast API-Server zu starten.
Hier soll es an Port 9004 starten.
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
Starten und erstellen Sie den Container mit 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.
Die erforderlichen Module wurden installiert und der Fast API-Server wurde gestartet.
Lassen Sie uns mit dem Befehl curl darauf zugreifen.
$ curl http://localhost:9004
{"Hello":"World"}
Reaktion wie in main.py
definiert!
Mit FastAPI können Sie ganz einfach einen API-Server einrichten! Es ist schön, mit Docker dieselbe Umgebung mit weniger Dateien teilen zu können: sparkles:
Da Sie Shell-Skripte auch in Python ausführen können, Es ist praktisch, Befehle für die automatische Bereitstellung zu implementieren und so etwas wie "Pseudo-Jenkins" auszuführen. ~~ Sag nicht, dass du Jenkins verwenden sollst ~~
Recommended Posts