Containeriser une Application FastAPI avec Docker : Simplifiez le Déploiement (2023)

Introduction

Dans le monde du développement d'API, FastAPI se distingue par son orientation vers le Python moderne, ses performances élevées et sa facilité d'utilisation. Cependant, lorsqu'il s'agit de gérer des dépendances telles que PostgreSQL, Redis, Celery, RabbitMQ, et d'autres, la question de la portabilité devient cruciale. Cet article explorera comment utiliser Docker pour containeriser une application FastAPI, offrant ainsi une solution élégante aux problèmes de configuration et de déploiement.

Prérequis

Avant de plonger dans la containerisation, assurez-vous d'avoir une compréhension de base de Python, FastAPI, et Docker. Vous aurez également besoin de Python ≥v3.7, de pip, et de Docker installés sur votre machine.

Mise en place de l'environnement de développement

Commençons par créer une application FastAPI rudimentaire avec un endpoint qui renvoie une liste d'utilisateurs. Utilisez les commandes suivantes pour configurer votre environnement de développement :

python3 -m venv nom-env (Unix/macOS) ou python -m venv nom-env (Windows)
source nom-env/bin/activate (Unix/macOS) ou .\\nom-env\\Scripts\\activate (Windows)
mkdir demo_app
cd demo_app
pip install fastapi[all]
pip freeze > requirements.txt

Ajout du Code Python

Dans votre IDE préféré, créez un fichier main.py dans le dossier demo_app et ajoutez le code suivant :

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

@app.get("/users")
async def users():
    users = [
        {"name": "Mars Kule", "age": 25, "city": "Lagos, Nigeria"},
        {"name": "Mercury Lume", "age": 23, "city": "Abuja, Nigeria"},
        {"name": "Jupiter Dume", "age": 30, "city": "Kaduna, Nigeria"}
    ]
    return users

Lancez l'application FastAPI avec la commande uvicorn main:app --reload et accédez à pour voir la documentation.

Containeriser avec Docker

La containerisation avec Docker simplifie le processus de configuration en créant un environnement isolé avec toutes les dépendances nécessaires. Suivez ces étapes pour containeriser votre application FastAPI.

Dockerfile

Créez un fichier Dockerfile dans le dossier demo_app avec le contenu suivant :

FROM python:3-slim-buster

RUN mkdir /code
WORKDIR /code

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

CMD ["uvicorn", "main:app", "--host=0.0.0.0", "--port=80"]

Construction de l'image Docker

Exécutez la commande suivante dans le répertoire demo_app pour construire l'image Docker :

docker image build --tag demo-app-image .

Si la construction réussit, vous aurez une image nommée demo-app-image sur votre machine.

Exécution du Conteneur

Démarrez un conteneur à partir de l'image Docker avec la commande suivante :

docker container run --publish 80:80 --name demo-app-container demo-app-image

Accédez à pour voir la documentation de votre API FastAPI containerisée.

Conclusion

La containerisation avec Docker offre une solution élégante à la gestion des dépendances et à la portabilité des projets FastAPI. En suivant ces étapes, vous simplifierez le déploiement de votre application, assurant une expérience de développement cohérente indépendamment des plateformes. Containerisez votre FastAPI application dès maintenant pour une gestion des projets plus efficace.

Top Articles
Latest Posts
Article information

Author: Velia Krajcik

Last Updated: 21/10/2023

Views: 5987

Rating: 4.3 / 5 (54 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.