Ejercicio 1: Creando mi propia imagen para una app python 22-23

De Wiki de EGC
Saltar a: navegación, buscar

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:80 holamundo-flask

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