Ejercicio 1: Creando mi propia imagen para una app python 22-23
De Wiki de EGC
Creando una imagen para una app Flask en python
- Todo el código fuente está disponible en : https://github.com/EGCETSII/1920-Practica-1
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"