Cel ćwiczenia
W ramach tego ćwiczenia samodzielnie stworzysz prostą aplikację w FastAPI, a następnie uruchomisz ją w kontenerze Dockerowym przy użyciu Play with Docker.
Jeżeli używasz prywatny laptop, zachęcam do zainstalowania Docker na nim i wykonaniu ćwiczenia lokalnie (https://docs.docker.com/engine/install/).
Wymagania
- Konto w Docker Hub (wymagane do korzystania z Play with Docker: https://hub.docker.com/).
- Podstawowa znajomość Dockera i Pythona.
Kroki ćwiczenia
1. Uruchomienie Play with Docker
- Wejdź na stronę Play with Docker.
- Zaloguj się na swoje konto Docker Hub.
- Kliknij Start i utwórz nową instancję, wybierając opcję + ADD NEW INSTANCE.
2. Instalacja FastAPI i Uvicorn
FastAPI to framework do budowy API w Pythonie, a Uvicorn to serwer ASGI, który go obsługuje.
W Play with Docker wykonaj poniższe polecenie, aby stworzyć katalog projektu i wejść do niego:
mkdir fastapi-docker && cd fastapi-docker
Następnie utwórz plik aplikacji FastAPI:
nano app.py
Wklej poniższy kod i zapisz plik (CTRL + X
, Y
, ENTER
):
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI in Docker!"}
3. Tworzenie pliku zależności (requirements.txt)
W tym samym katalogu utwórz plik requirements.txt
:
nano requirements.txt
Dodaj do niego:
fastapi
uvicorn
Zapisz (CTRL + X
, Y
, ENTER
).
4. Tworzenie Dockerfile
Dockerfile to instrukcja do budowania obrazu Dockera.
Utwórz nowy plik:
nano Dockerfile
Wklej poniższą zawartość:
# Użycie oficjalnego obrazu Pythona
FROM python:3.10
# Ustawienie katalogu roboczego
WORKDIR /app
# Kopiowanie plików do kontenera
COPY requirements.txt .
COPY app.py .
# Instalacja zależności
RUN pip install --no-cache-dir -r requirements.txt
# Uruchomienie aplikacji
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]
Zapisz plik (CTRL + X
, Y
, ENTER
).
5. Budowanie obrazu Dockera
Teraz zbudujemy obraz Dockera na podstawie Dockerfile
:
docker build -t my-fastapi-app .
Po zakończeniu budowania obrazu, sprawdź, czy znajduje się na liście:
docker images
6. Uruchomienie kontenera
Teraz uruchomimy aplikację w kontenerze:
docker run -d -p 8000:8000 my-fastapi-app
Sprawdź działające kontenery:
docker ps
7. Testowanie aplikacji
Sprawdź, czy aplikacja działa, wykonując polecenie:
curl http://localhost:8000
Powinieneś zobaczyć odpowiedź:
{"message":"Hello, FastAPI in Docker!"}
8. Zatrzymanie i usunięcie kontenera
Aby zatrzymać kontener:
docker stop <CONTAINER_ID>
Aby usunąć kontener:
docker rm <CONTAINER_ID>
9. Podsumowanie
W tym ćwiczeniu:
- Utworzyłeś aplikację FastAPI.
- Stworzyłeś plik Dockerfile.
- Zbudowałeś obraz Dockerowy.
- Uruchomiłeś kontener z aplikacją w Play with Docker.
- Przetestowałeś działanie API.