[PYTHON] Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung

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.

Erstellte Datei

Wir werden nach dem offiziellen Verfahren vorgehen.

Es ist in Ordnung, wenn die endgültige Dateistruktur so ist. Super einfach. スクリーンショット 2020-03-30 16.30.06.png

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

Funktionsprüfung

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!

Zusammenfassung

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 ~~

Referenz-URL

Recommended Posts

Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Erstellen Sie mit pyenv eine virtuelle Umgebung für Python
Erstellen Sie mit Neovim eine moderne Python-Umgebung
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Python-Umgebung mit Docker-Compose
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Erstellen Sie mit Vagrant in 5 Minuten eine Django-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine virtuelle Umgebung mit pyenv und venv
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen einer Python-Umgebung mit OSX Elcapitan
Erstellen Sie mit IntelliJ schnell eine Python Django-Umgebung
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
Erstellen Sie eine Python-Ausführungsumgebung mit VS-Code
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
Erstellen Sie mit direnv eine Python-Umgebung
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Erstellen Sie eine virtuelle Python-Umgebung mit virtualenv und virtualenvwrapper
Erstellen Sie eine maschinelle Lernumgebung
Erstellen Sie die Python-Umgebung offline
Erstellen Sie eine Entwicklungsumgebung mit Poetry Django Docker Pycharm
Erstellen Sie eine Django-Umgebung mit Docker-Compose (MariaDB + Nginx + uWSGI).
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen einer numerischen Berechnungsumgebung mit pyenv und miniconda3
Erstellen Sie eine Datenanalyseumgebung mit Kedro + MLflow + Github-Aktionen
Erstellen Sie Azure-Pipelies mit Azure DevOps in einer selbst gehosteten Linux-Umgebung
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
(Jetzt) Erstellen Sie eine GPU Deep Learning-Umgebung mit GeForce GTX 960
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie mit VSCode x Remote Development x Pipenv eine komfortable Entwicklungsumgebung
Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen Sie eine Python-Umgebung mit pyenv (OS X El Capitan 10.11.3).
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
Erstellen Sie eine LAMP-Umgebung mit Vagrant (Linux + Apache + MySQL + PHP)
Erstellen Sie eine Python-Umgebung mit WSL + Pyenv + Jupyter + VSCode
[Studiennotiz] Erstellen Sie einen GeoJSON-Vektor-Kachelserver mit Fast API
Erstellen einer Kubernetes-Umgebung mit ansible 2
Erstellen Sie FastAPI + uvicorn + nginx mit Docker-Compose
Erstellen Sie mit Docker eine Go-Umgebung
Erstellen Sie eine Deb-Datei mit Docker
Erstellen Sie eine MySQL + Python-Umgebung mit Docker
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen einer virtuellen Umgebung mit Python 3
Erstellen Sie eine Flask-Umgebung mit Dockerfile + docker-compose.yml
Erstellen Sie eine Webanwendung mit Django
Erstellen Sie eine IPython Notebook-Umgebung mit boot2docker
Erstellen Sie eine Python3-Umgebung unter CentOS7
Erstellen einer Kubernetes-Umgebung mit ansible 1