Docker-Lernenhttps://www.cnblogs.com/poloyy/p/15257059.html Projektstruktur. ├── App │ ├── __init__.py │ └── main.py ├── Docker-Datei └── Anforderungen.txt Main.py-Code der FastAPI-Anwendung von der Eingabe von import Optional von fastapi importiere FastAPI app = FastAPI() @app.get("/") auf Grund von read_root(): return {"Hallo": "Welt"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = Keine): zurück {"item_id": item_id, "q": q} Docker-Datei # 1. Beginnen Sie mit dem offiziellen Python-Basisimage FROM python:3.9 # 2. Stellen Sie das aktuelle Arbeitsverzeichnis auf /code ein # Hier legen Sie Ihre Datei requirements.txt und Ihr Anwendungsverzeichnis WORKDIR /code ab. # 3. Kopieren Sie zuerst die Datei requirements.txt. # Da sich diese Datei nicht oft ändert, erkennt Docker sie und verwendet den Cache in diesem Schritt und aktiviert den Cache auch für den nächsten Schritt. KOPIEREN ./requirements.txt /code/requirements.txt # 4. Führen Sie den Pip-Befehl aus, um Abhängigkeiten zu installieren. RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt # 5. Kopieren Sie den FastAPI-Projektcode COPY ./app /code/app # 6. Führen Sie den Dienst CMD aus ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"] Schritt 4: Führen Sie die Pip-Befehlsanalyse aus
Docker CacheHier gibt es einen wichtigen Trick Dockerfile, kopieren Sie zuerst nur die Dateien der Abhängigkeiten, nicht den FastAPI-Anwendungscode ./Anforderungen.txt /code/Anforderungen.txt
Docker-Image erstellenÖffnen Sie die Befehlszeile im Dockerfile
Spiegel anzeigen
Starten Sie den Docker-Container
Container anzeigen
Besuchen Sie 127.0.0.1/ Besuchen Sie 127.0.0.1/docs Offizielles Docker-Image mit Gunicorn - Uvicorn
Offizielle Kastanie VON tiangolo/uvicorn-gunicorn-fastapi:python3.9 KOPIEREN ./requirements.txt /app/requirements.txt Führen Sie den Befehl „pip install --no-cache-dir --upgrade -r /app/requirements.txt“ aus. KOPIEREN ./app /app Anwendungsszenario
Verwenden des Docker-Image von Poetry # Phase 1: Wird nur verwendet, um Poetry zu installieren und requirements.txt mit Projektabhängigkeiten aus der pyproject.toml-Datei von Poetry zu generieren. VON tiangolo/uvicorn-gunicorn:python3.9 als Anforderungsphase # Legen Sie /tmp als aktuelles Arbeitsverzeichnis fest. Hier generieren wir die Datei requirements.txt WORKDIR /tmp # Poesie installieren Führen Sie „pip install poetry“ aus. # KOPIEREN ./pyproject.toml ./poetry.lock* /tmp/ # Anforderungen.txt generieren Führen Sie den Befehl poetry export -f requirements.txt --output requirements.txt --without-hashes aus. # Dies ist die letzte Phase. Alles, was danach kommt, bleibt im endgültigen Container-Image von Python:3.9. # Stellen Sie das aktuelle Arbeitsverzeichnis auf /code ein ARBEITSVERZEICHNIS /code # Kopieren Sie requirements.txt. Diese Datei existiert nur in der vorherigen Docker-Phase. Daher wird --from-requirements-stage zum Kopieren verwendet. COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt # Führen Sie den Befehl RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt aus # KOPIEREN ./app /code/app # Dienst CMD ausführen ["uvicorn", "app.1_Quick Start:app", "--host", "0.0.0.0", "--port", "80"]
ausführliches Tutorial zu Poesie https://www.jb51.net/article/195070.htm Dies ist das Ende dieses Artikels über FastAPI, das in Docker bereitgestellt wird. Weitere verwandte Inhalte zu FastAPI, das in Docker bereitgestellt wird, finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung zur Verwendung von css-vars-ponyfill in der IE-Umgebung (nextjs-Build)
>>: Detaillierte Erläuterung der Implementierung des MySQL-Autoinkrements des Primärschlüssels
Die MySQL-Funktionen DATE_ADD(date,INTERVAL expr ...
In diesem Artikel wird der spezifische Code von R...
Wenn Sie gerade erst mit Linux in Berührung gekom...
In diesem Artikelbeispiel wird der spezifische Ja...
Lottie ist eine von Airbnb entwickelte Open-Sourc...
Vorwort Was ist die Rolle eines Agenten? - Mehrer...
1: django-admin.py startproject Projektname 2: CD...
Inhaltsverzeichnis 1. Einleitung 2. Umschalten 1....
Inhaltsverzeichnis 1. Benutzer hinzufügen 2. Ände...
Veranstaltungsbeschreibung onactivate: Wird ausgel...
Vorwort Wenn wir Webseiten schreiben, stoßen wir ...
Inhaltsverzeichnis Einführung und Demo API: Conta...
Das Miniprogramm sammelte persönliche Benutzerinf...
Inhaltsverzeichnis Das Wesentliche beim QR-Code-L...
Inhaltsverzeichnis 1. Standardmäßig anzeigen und ...