DEV Community

Cover image for 🐳 Cómo construir un Dockerfile básico para Flask 🚀
Jorge Garcia
Jorge Garcia

Posted on

🐳 Cómo construir un Dockerfile básico para Flask 🚀

Cuando empiezas con Docker y Flask, lo más útil es aprender los pasos esenciales para levantar tu aplicación en un contenedor. Aquí te muestro cómo hacerlo, sin complicaciones, y listo para correr con Gunicorn.


Paso 1 — Imagen base ligera

Usa una versión oficial de Python, preferiblemente slim para que la imagen sea más pequeña.

FROM python:3.11-slim
Enter fullscreen mode Exit fullscreen mode

💡 Esto te da un entorno limpio y mantenido oficialmente.


Paso 2 — Directorio de trabajo

Define dónde se ejecutará tu app dentro del contenedor.

WORKDIR /app
Enter fullscreen mode Exit fullscreen mode

Paso 3 — Dependencias

Primero copiamos solo requirements.txt para aprovechar la caché de Docker, luego las instalamos:

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
Enter fullscreen mode Exit fullscreen mode

Paso 4 — Copiar tu aplicación

Ahora sí, copia el resto de tu código al contenedor.

COPY . .
Enter fullscreen mode Exit fullscreen mode

Paso 5 — Exponer el puerto

Esto le dice a Docker en qué puerto escuchará tu app.

EXPOSE 5000
Enter fullscreen mode Exit fullscreen mode

Paso 6 — Arranque con Gunicorn

Para producción, nunca uses flask run. Gunicorn es más estable.

CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
Enter fullscreen mode Exit fullscreen mode

💡 app:app asume que tu archivo principal se llama app.py y contiene app = Flask(__name__).


Bonus: Versionando tu aplicación

Para mantener control de versiones y despliegues:

# Build con versión
docker build -t flask-app:v1.0.0 .

# Tag adicional
docker tag flask-app:v1.0.0 flask-app:latest
Enter fullscreen mode Exit fullscreen mode

Esto te permite versionar releases y mantener la imagen actualizada sin romper tu entorno de producción.


🔑 Conclusión

Con estos 6 pasos básicos puedes:

  • Construir tu Dockerfile de forma clara
  • Levantar tu app Flask en contenedor
  • Versionar la aplicación con tags
  • Prepararla para producción de manera sencilla

Top comments (0)