EGC 2021/2022

Ejercicio 1: Creando mi propia imagen para una app python

Prácticas

Creando una imagen para una app Flask en python

Comenzamos creando nuestra app en el arcvhivo holamundo.py

from flask import Flask  
app = Flask(__name__) 
@app.route('/') 
def hello_world():     
    return 'Hello World' 
@app.route('/hello/<name>')
def hello_name(name):
    return 'Hello %s!' % name
if __name__ == '__main__':      
    app.run(host="0.0.0.0")

Definimos las dependencias en el archivo requirements.txt

Flask

Podemos usar la imagen de python3 existente en los repositorios de docker, y modificarla anadiendo la aplicacion que hemos desarrollado

Para ello podemos crear un fichero Dockerfile que nos automatiza la creacion de una imagen modificada:

# Base image 
FROM python:3 
#copy the requirements txt file with all our dependencies
COPY requirements.txt ./ 
#install the dependencies
RUN pip install --no-cache-dir -r requirements.txt  
#copy the app in the image
COPY holamundo.py ./  
#define a default command to execute
CMD [ "python", "./holamundo.py" ]

Este fichero indica que docker tiene que descargar la imagen python en su tercera versión y tiene que añadir el fichero requirements a la carpeta de usuario de la imagen.

Docker nos ofrece un lenguaje de scripting para automatizar la creacion de imagenes.

# docker build -t holamundo-flask .

Va a crear la imagen, tras esto podemos lanzar:

# docker run -p 8020:5000 holamundo-flask

Tras esto, desde un navegador, abrimos la URI: http://localhost:8020/hello/"yourname"