Python - Instalar Python en un contenedor de docker

Cuando queremos cerar un contenedor con nuestras tareas básicas en python, podemos hacerlo utilizando el archivo de Dockerfile. Luego construimos la imagen junto con las librerias necesarias para nuestro proyecto.

Ventajas:

  • Todas las ventajas de un contenedor docker.
  • Ambiente aislado y listo para desplegar, sin conflicto entre otras librerias de python.
  • Puedo tener varios contenedores con diferentes versiones, listas para desplegar.
  • Ambiente personalizado y libererías adicionales a python. 
  • Personalizar mi contenedor con herramientas de monitoreo y tráfico de red.
Desventajas:

  • Al agregar nuevas librerías, es necesario construir una neuva imagen.
  • Cambios el en código, deben enviarse a la imagen para validar el funcionamiento.


El siguiente es el código del archivo Dockerfiele para crear una imagen de docker sobre un servidor de Ubuntu 18.04.
Instala librerías conocidas como:

  • matplotlib - Visualización y gráficos que nicluye barras, torta, contorno, entre otras. 
  • seaborn - Librería de visualisción construida sobre matplotlib. Agrega un mejor look-and-feel con menor código
  • scikit-learn - Librería de machine learning
  • ta-lib - Librería de análisis técnico de acciones. 


La librería de análisis(ta-lib) técnico, tiene conflictos al instalar desde el gestor de paquetes, por lo que se obtinene la librería desde el repositorio de código y se construye dentro del contendor.
Adicional a las librerías instalo utlidades de linux como wget, git

FROM ubuntu:18.04
RUN apt-get update && apt-get install \
  -y --no-install-recommends python3 python3-dev python3-venv python3-venv python-pip

RUN apt-get install build-essential wget -y
RUN apt-get install -y git

RUN apt install python3-pip -y
RUN pip3 install matplotlib
RUN pip3 install seaborn
RUN pip3 install setuptools --upgrade
RUN pip3 install setuptools --upgrade
RUN apt-get install python3.7-dev -y
RUN apt-get install -y python3 python-dev python3-dev build-essential libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev python-pip
RUN apt-get install -y python-pip
RUN apt-get install -y libssl-dev libffi-dev
RUN apt-get install -y libblas-dev libatlas-base-dev
RUN wget https://artiya4u.keybase.pub/TA-lib/ta-lib-0.4.0-src.tar.gz
RUN tar -xvf ta-lib-0.4.0-src.tar.gz
RUN cd ta-lib/ && ./configure --prefix=/usr
RUN cd ta-lib/ && make install
RUN pip3 install TA-Lib
RUN pip3 install requests
RUN pip3 install bs4
RUN pip3 install sklearn

Construimos la imagen con:

docker build --no-cache --tag python-docker-app .



Comentarios

Entradas populares de este blog

Python - funciones, argumentos y parámetros

Python - Modo interactivo, Modo Script, Modo web