Repositorio que contiene la infraestructura necesaria para utilizar Servidorcito 3.0
Construido sobre Docker a partir de la imagen oficial de Jupyter Docker Stacks
Instalado sobre EC2 (data-gp4)
ssh -N -L "localhost:8884:10.1.103.91:8888" ubuntu@vpn-us.linkedstore.com &
nube ssh 10.1.103.91
docker ps -a
(Ver el nombre de contenedor)docker exec -it data-dev-jupyter-docker_jupyter-data_1 /bin/bash
conda info --envs
source activate MY_ENV
Existen dos formas de instalar librerías, de forma temporal y de forma permanente. Cuando se necesita necesita instalar una librería de forma inmediata y probar su funcionamiento vamos a instalarla de forma temporal. Una vez que se sabemos que esa libreria funciona y se requiere utilizar de forma regular, la instalamos de forma permanente
- Activar environment
- Instalar librería vía conda/pip
Importante: Si no se instala la librería de forma permanante, la misma dejará de existir cuando el contenedor de Docker se reinicie
- Ingresar a la carpeta de requerimientos dentro del repo
/environments/requirements
- Buscar archivo de requerimiento correspondiente al envronment
- Editar el archivo y agregar al final la librería y versión que deseamos instalar
Importante: Si no se indica la version de la librería a instalar, por defecto instalará siempre la última versión disponible
- Guardar, commitear y pushear
Existen dos formas de instalar environments, de forma temporal y de forma permanente. Cuando se necesita necesita instalar un environment de forma inmediata y probar su funcionamiento vamos a instalarlo de forma temporal. (Ejemplo: Queremos probar una nueva version de Python) Una vez que se sabemos que ese environment funciona y se requiere utilizar de forma regular, lo instalamos de forma permanente
- Los environments dentro del contenedor son creados via conda, existen múltiples formas de crear un nuevo environment. [Conda managing environments]
Los environments permanentes son creados desde un archivo YML
Se toma como ejemplo la creación de guido_env
- Ingresar a la carpeta de requerimientos dentro del repo
/environments/requirements
y crear un nuevo file con las librerías que necesitamos. - Ingresar a la carpeta de requerimientos dentro del repo
/environments/yml
- Crear archivo yml con la siguiente estructura:
name: guido_env
dependencies:
- python=3.7
- ipykernel
- matplotlib
- pip
- pip:
- -r file:/home/jupyter-datascience-dev/environments/requirements/requirements_guido.txt
name: Nombre del environment.
dependencies: indicar la versión de Python a utilizar.
pip: Mediante -r file:
indicamos el path dentro del contendor de docker donde se encuentra el file de requerimientos correspondiente a nuestro env.
- Abrir el archivo
Dockerfile
dentro del directorio raíz de nuestro repo. - Agregar al final del archivo las siguientes 4 líneas de código.
# 15 guido_env
RUN conda env create -q -f /home/jupyter-datascience-dev/environments/yml/environment_guido.yml
SHELL ["conda","run","-n","guido_env","/bin/bash","-c"]
RUN python -m ipykernel install --name guido_env --display-name "guido_env"
- Guardar, commitear y pushear
IMPORTANTE: El cambio se vera reflejado en el próximo build del contenedor de Docker, el mismo se realiza de forma automatica, 1 vez por semana durante el fin de semana