Volver al portafolio
DataScience-Docker
Herramienta / Boilerplate

DataScience-Docker

Entorno reproducible para Ciencia de Datos con Python 3.14, Poetry, Docker y JupyterLab: se levanta con un solo comando y corre igual en cualquier máquina.

Resumen del proyecto

DataScience-Docker es una plantilla de entorno de desarrollo para proyectos de Ciencia de Datos. Empaqueta Python 3.14, Poetry, pandas, scikit-learn y JupyterLab en un contenedor, para que abrir un notebook no dependa de instalar ni versionar nada en la máquina de cada persona.

Un Makefile concentra el flujo de trabajo (construir, levantar, abrir JupyterLab, correr pruebas, lint, formato y typecheck), y existe una vía local con Poetry como alternativa cuando no se quiere usar Docker.

Lo trato como un proyecto de software y no como un script suelto: pruebas con pytest, Ruff, mypy en modo estricto, un pipeline de CI con escaneo de seguridad y dependencias actualizadas de forma automática.

Características principales

  • Contenedor de desarrollo con Python 3.14, Poetry, pandas, scikit-learn y JupyterLab
  • Flujo de trabajo unificado con make: build, up-d, notebook, test, lint, format-check, typecheck y lock-check
  • Vía local alternativa con Poetry cuando no se quiere usar Docker
  • Hook de pre-commit que corre lint y verificación de formato dentro del contenedor
  • Guía para usar los notebooks desde VS Code conectado al servidor de Jupyter del contenedor

Stack

PythonDockerPoetryJupyterLabpandasscikit-learnpytestRuffmypyGitHub Actions

Problema

Los entornos de Ciencia de Datos suelen armarse a mano y se rompen entre máquinas: versiones de Python distintas, dependencias sin fijar y notebooks que funcionan solo en la laptop de quien los escribió.

Enfoque

Se definió un solo contenedor de desarrollo con las dependencias fijadas en poetry.lock y se puso todo el flujo detrás de comandos make, de modo que local y CI ejecutan exactamente lo mismo dentro de Docker. La calidad se exige con puertas automáticas: lint, formato, typecheck, verificación del lockfile y escaneo con Trivy.

Resultados

  • Entorno completo levantado con make build, make up-d y make notebook, sin instalar Python ni dependencias en el host
  • CI con seis trabajos (pruebas con cobertura mínima de 80%, Ruff, formato, mypy estricto, verificación del lockfile y Trivy), con las acciones fijadas por commit SHA y permisos mínimos
  • Dependabot semanal para dependencias de pip y GitHub Actions, con la versión 1.0.0 publicada

Cliente

Proyecto personal

Cronología

Abril 2024 - Presente

Rol

Data Scientist & Desarrollador

© 2026 Cuauhtémoc Bautista

0%