Ejercicio 1: Creando mi propia imagen para una app python
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. File 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()
Definimos las dependencias
File requirements.txt
Flask
Podemos usar la imagen de python3 existente en los repositorios de docker, y modificar anadiendo en la carpeta apps 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.
Podman nos ofrece un lenguaje de scripting para automatizar la creacion de imagenes.
# podman build -t holamundo-flask .
Va a crear la imagen, tras esto podemos lanzar:
# podman run -it -p 5000:5000 holamundo-flask
Tras esto, desde un navegador, abrimos la URI: http://localhost:5000/hello/"yourname"