[PYTHON] Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung

Einführung

In letzter Zeit verwende ich häufig die Fast-API und wollte sie schnell mit Docker erstellen und wegwerfen. Als Memo möchte ich einen Weg hinterlassen, um es leicht zu bauen.

Vorbereitung

Ausführung


$ docker --version
Docker version 19.03.8, build afacb8b7f0

Dateiorganisation


.
├── Dockerfile
├── docker-compose.yml
├── main.py
└── requirements.txt

Quelle

Sie können von hier aus klonen https://github.com/sattosan/sample-fastapi-alpine

Dockerfile Hergestellt auf alpiner Basis

Dockerfile


FROM python:3.8-alpine

WORKDIR /app

ADD requirements.txt .
#Installieren Sie die erforderlichen Pakete im Container
RUN apk add --no-cache build-base mariadb-connector-c-dev
# requirements.Installieren Sie die in txt aufgelisteten Python-Pakete
RUN pip install --no-cache-dir --trusted-host pypi.python.org -r requirements.txt

ADD main.py .
#Warten Sie auf Fast API an Port 8000
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]

Docker Compose

docker-compose.yml


version: "3.0"

services:
  # FastAPI
  api:
    container_name: "api"
    build: .
    restart: always
    tty: true
    ports:
      - 8000:8000

Wir haben die notwendigen Pakete zusammengestellt

requirements.txt


uvicorn
fastapi

Beispielcode

Ich habe den Beispielcode in der FastAPI-Dokumentation (https://fastapi.tiangolo.com/) vorbereitet.

main.py


from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}

Lauf

$ docker-compose up -d --build

Überprüfen der Docker-Bildgröße

--alpine-basierte Bildgröße

docker images | grep api
latest              bff0158b61ca        29 minutes ago      275MB

Dies ist das Ergebnis des Baus mit Bezug auf Honke.

$ docker images | grep api
latest              878110f2207f        11 seconds ago      1.02GB

Sie können sehen, dass es im Vergleich zur ursprünglichen Familie um das 3,6-fache reduziert wurde

Funktionsprüfung

Von FastAPI generierte APIs werden von Swagger automatisch dokumentiert

Schau dir Swagger an

Sie können das Dokument anzeigen, indem Sie auf "domain / docs" zugreifen

http://localhost:8000/docs

キャプチャ.PNG

Versuchen Sie, die API zu treffen

Wenn Sie es mit Locken schlagen, wird es so zurückkommen

Ergebnis


$ curl localhost:8000
{"Hello":"World"}

abschließend

Dieses Mal habe ich versucht, eine leichtgewichtige Entwicklungsumgebung auf alpiner Basis aufzubauen.

Es ist 3,6-mal leichter als das ursprüngliche Haus, daher denke ich, dass es eine ausreichende Umgebung für den Einweggebrauch ist. Vor kurzem wurde FastAPI in verschiedenen Projekten eingesetzt, darunter auch in Netflix. Wenn Sie es noch nicht benutzt haben, versuchen Sie es bitte!

--Netflix OSS: https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072

Referenzseite

--Honke: https://fastapi.tiangolo.com/

Recommended Posts

Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie mit Docker kostengünstig eine Flask-Entwicklungsumgebung
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen Sie mit dem Serverless Framework eine lokale Entwicklungsumgebung für Lambda + Python
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie eine LAMP-Umgebung auf Ihrem lokalen Docker
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
Erstellen Sie mit Eclipse eine Minecraft-Plug-Entwicklungsumgebung
Erstellen Sie eine mruby-Entwicklungsumgebung für ESP32 (Linux Edition)
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Erstellen Sie eine Entwicklungsumgebung mit Jupyter und Flask mit Python in Docker (unterstützt sowohl VS Code als auch Code-Server).
Flutter in Docker - Erstellen und Verwenden einer Flutter-Entwicklungsumgebung in einem Docker-Container
Erstellen Sie eine lokale Entwicklungsumgebung mit WSL + Docker Desktop für Windows + Docker-Lambda + Python
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen Sie eine lokale Entwicklungsumgebung für Laravel6.X auf Ihrem Mac
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
[Go + Gin] Ich habe versucht, eine Docker-Umgebung zu erstellen
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
Erstellen Sie eine LAMP-Umgebung [CentOS 7]
[ev3dev × Python] Aufbau einer ev3dev-Entwicklungsumgebung
Erstellen Sie eine maschinelle Lernumgebung
Erstellen Sie die Python-Umgebung offline
Erstellen Sie eine Docker-Umgebung, die PyTorch und JupyterLab verwenden kann
Erstellen einer Jupyter Lab-Entwicklungsumgebung auf WSL2 mit Anaconda3
Erstellen Sie ein seq2seq-Modell mit dem Functional API Model Building & Learning von keras
Erstellen Sie mit hug einen Web-API-Server mit explosiver Geschwindigkeit
Erstellen Sie eine Python-Entwicklungsumgebung mit Eclipse (fügen Sie einen HTML-Editor hinzu).
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (2) Grundeinstellungen
Erstellen Sie mit VSCode x Remote Development x Pipenv eine komfortable Entwicklungsumgebung
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Generieren Sie ein Docker-Image mit Fabric
Hinweise zum Erstellen einer LAMP-Umgebung mit Vagrant und VirtulBox
Erstellen Sie eine Chainer-Umgebung mit CUDA und cuDNN auf einer p2-Instanz
Erstellen Sie eine Deb-Datei mit Docker
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
Versuchen Sie es mit virtualenv, mit dem eine virtuelle Umgebung von Python erstellt werden kann
Der einfachste Weg, um eine Spleeter-Nutzungsumgebung unter Windows zu erstellen
So erstellen Sie eine Python-Umgebung mit Virtualenv unter Ubuntu 18.04 LTS