Para completar este caso debemos crear un código python que consuma datos de una api sobre los simpsons y guarde la información en ficheros csv y carpetas.
|
En este ejercicio se piden realizar las siguientes tareas:
|
Dentro de mi repositorio este directorio se organiza de la siguiente manera:
| Carpeta/Archivo | Contenido |
|---|---|
| Dockerfile | Contiene el codigo para construir el contenedor Docker que se pide en los puntos 3 y 4 |
| Lisa | Contiene el archivo quotes_lisa.csv con todas las frases de Lisa |
| Homer | Contiene el archivo quotes_homer.csv con todas las frases de Homer |
| General | Contiene las frases de todos los personajes |
| main.py | Script de Python que ejecuta el paso 2 |
| requirements.txt | Archivo necesario para instalar los módulos que falten en el contenedor docker haciendo uso de pip install -r requirements.txt |
| simpsons.ipynb | Notebook generado con Google Colab (hacer click para acceder al Notebook) con el paso 1 |
Ejecutando los siguientes comandos se genera la imagen Docker a la que se le pone de nombre pythonsimpson
docker build -t pythonsimpson .Con el siguiente comando se levanta el contenedor:
docker run -it pythonsimpson(Ejecutando docker run con el argumento -it se accede al contedor y muestra un print en la terminal con el nombre y frase de cada personaje. Si no queremos ver este print, hay que utilizar el argumento -d para levantar el contenedor en el background.)
Y haciendo uso de los siguientes comandos desde una terminal se puede comprobar que el programa está escribiendo las frases en alguna de las carpetas:
docker exec -it <conainer_id> bash
cd General/
tail -f quotes_general.csv|
En este ejercicio se piden realizar las siguientes tareas:
|
Dentro de mi repositorio este directorio se organiza de la siguiente manera:
| Carpeta/Archivo | Contenido |
|---|---|
| Dockerfile | Contiene el codigo para construir el contenedor Docker con el codigo para construir la imagen con el resultado de este ejercicio |
| main.py | Script de Python que ejecuta los pasos 1 a 3 |
| requirements.txt | Archivo necesario para instalar los módulos que falten en el contenedor docker haciendo uso de pip install -r requirements.txt |
Ejecutando los siguientes comandos se genera la imagen Docker a la que se le pone de nombre pythonsimpson2
docker build -t pythonsimpson2 .Con el siguiente comando se levanta el contenedor:
docker run -it pythonsimpson2(Ejecutando docker run con el argumento -it se accede al contedor y muestra un print en la terminal con el nombre y frase de cada personaje. Si no queremos ver este print, hay que utilizar el argumento -d para levantar el contenedor en el background.)
Y haciendo uso de los siguientes comandos desde otra terminal se puede comprobar que el programa está escribiendo las palabras con el número de veces que aparecen en el archivo countedWords.csv
docker exec -it <conainer_id> bash
cd General/
tail -f countedWords.csv
En este ejercicio se piden realizar las siguientes tareas:
|
Dentro de mi repositorio este directorio se organiza de la siguiente manera:
| Carpeta/Archivo | Contenido |
|---|---|
| python | Carpeta que contiene los archivos para contruir el contenedor Python |
| jupyter | Carpeta que contiene los archivos para contruir el contenedor Jupyter |
| docker-compose.yml | Código de docker-compose para levantar ambos contenedores |
Dentro de las carpetas "python" y "jupyter" los archivos se organizan de forma similar a como en los 2 anteriores niveles. La diferencia, es que existe una carpeta adicional llamada results, que es donde se monta el volumen para compartir datos entre los 2 contenedores. El código python está hecho para que los plots se generen 'on-the-fly' de manera que se pueda tanto borrar carpetas con imagenes de personajes, como resetear el servidor python sin que el Jupyter Notebook de un error.
He hecho un intento de ejecutar en paralelo cada una de las celdas en un procesador distinto del ordenador para poder visualizar los 2 gráficos simultáneamente, pero no lo he terminado de conseguir.
Ejecutando los siguientes comandos se construyen y levantan a la vez los contenedores ejercicio_3-jupyter y ejercicio_3-srv-python:
docker compose upPara ejecutar el Notebook contenido en el contenedor Jupyter, se tiene que acceder a la siguiente dirección:


