FastAPI lokales Docker-Compose Setup
Um FastAPI mit Docker Compose lokal auszuführen, müssen Sie die folgenden Schritte ausführen:
Schritt 1: Erstellen Sie ein neues Verzeichnis für Ihr Projekt und navigieren Sie in Ihrem Terminal dorthin.
Schritt 2: Erstellen Sie eine neue Datei namens Dockerfile
im Projektverzeichnis und fügen Sie den folgenden Code ein:
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
COPY ./app /app
Dies erstellt ein Docker-Image, das auf dem offiziellen tiangolo/uvicorn-gunicorn-fastapi
-Image basiert und kopiert den Inhalt des app
-Verzeichnisses in das /app
-Verzeichnis des Images.
Schritt 3: Erstellen Sie eine neue Datei namens docker-compose.yml
im Projektverzeichnis und fügen Sie den folgenden Code darin ein:
version: '3'
services:
app:
build: .
ports:
- "8000:80"
Dadurch wird ein neuer Dienst namens "app" auf der Grundlage des soeben erstellten Docker-Images erstellt und der Port "8000" auf unserem lokalen Rechner dem Port "80" im Container zugeordnet.
Schritt 4: Erstellen Sie ein neues Verzeichnis namens app
im Projektverzeichnis und erstellen Sie darin eine neue Datei namens main.py
. Diese Datei sollte Ihren FastAPI-Code enthalten.
Schritt 5: Starten Sie den Container, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:
docker-compose up
Damit wird das Docker-Image erstellt und der Container gestartet. Sie sollten in der Lage sein, auf Ihre FastAPI-Anwendung zuzugreifen, indem Sie http://localhost:8000
in Ihrem Webbrowser aufrufen.
Hier ist die endgültige Verzeichnisstruktur Ihres Projekts:
.
├── Dockerfile
├─── docker-compose.yml
└─── app
└── main.py
Und hier ist eine Beispieldatei main.py
, die Sie verwenden können, um die Einrichtung zu testen:
from fastapi importieren FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello, World!"}
Mit diesem Setup sollten Sie in der Lage sein, Ihre FastAPI-App lokal mit Docker Compose auszuführen und zu testen.
Recent Posts

Die Macht von Terraform freisetzen: Bedingte Ausdrücke meistern für eine intelligentere Infrastrukturautomatisierung

Die Zukunft enthüllen: Navigieren der öffentlichen Schnittstelle von Apache Airflow für optimiertes Workflow-Management
Apache Airflow
Beherrschung der Workflow-Automatisierung: Unkonventionelle Apache Airflow How-To-Guides für den modernen Daten-Enthusiasten
Apache Airflow
Die Beherrschung der Cloud: Enthüllung der besten Praktiken von AWS CloudFormation für nahtloses Infrastrukturmanagement
