Python / FastAPI Basics Interview Questions
How do you containerise and deploy a FastAPI application with Docker?
Containerising FastAPI with Docker ensures consistent environments across development, staging, and production. Use a multi-stage build to keep the production image small, and run with Gunicorn + Uvicorn workers for production-grade concurrency.
# Dockerfile FROM python:3.12-slim AS base WORKDIR /app # Install dependencies first (layer caching) COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copy application code COPY . . # Create non-root user for security RUN adduser --disabled-password --gecos "" appuser USER appuser EXPOSE 8000 # Production: Gunicorn manages multiple Uvicorn worker processes CMD ["gunicorn", "main:app",\ "--workers", "4",\ "--worker-class", "uvicorn.workers.UvicornWorker",\ "--bind", "0.0.0.0:8000"]
# docker-compose.yml version: "3.9" services: api: build: . ports: - "8000:8000" environment: - DATABASE_URL=postgresql+asyncpg://user:pass@db/mydb - SECRET_KEY=${SECRET_KEY} # from .env depends_on: db: condition: service_healthy restart: unless-stopped db: image: postgres:16 environment: POSTGRES_USER: user POSTGRES_PASSWORD: pass POSTGRES_DB: mydb healthcheck: test: ["CMD-SHELL", "pg_isready -U user -d mydb"] interval: 5s retries: 5 volumes: - pgdata:/var/lib/postgresql/data volumes: pgdata:
| CPUs | Recommended workers (2*CPU+1) |
|---|---|
| 1 | 3 |
| 2 | 5 |
| 4 | 9 |
| 8 | 17 |
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
