Dockerize su aplicación Flask

Python proporciona muchas formas de distribuir sus proyectos de Python. Una de esas formas es mediante el uso de una tecnología importante llamada Docker. Docker es una aplicación de código abierto que permite a los administradores crear, administrar, implementar y replicar aplicaciones mediante contenedores. Básicamente es una plataforma que permite a los desarrolladores hacer que sus aplicaciones sean portátiles colocándolas dentro de un contenedor. Puede hacer que su proyecto de python sea portátil usándolo. El contenedor Docker elimina los problemas de dependencia al aislar su proyecto con system. La imagen Docker creada de su proyecto se puede portar a cualquier lugar. Documentación oficial de Docker. En este artículo, veremos un ejemplo en el que convertiremos nuestra aplicación Flask en una imagen acoplable y veremos algunos comandos básicos de la ventana acoplable junto con ella. Flask es un micro-framework para construir pequeñas aplicaciones web. Solo lo estamos usando como un ejemplo del proyecto Python. Uno puede usar cualquier otro proyecto de Python de la misma manera. Para obtener más información sobre Flask, visite aquí.

Configuración de Flask y Dockerfile

  • Crear carpeta de proyecto

    Abra su terminal y cree una carpeta para su aplicación de matraz, digamos «flask_docker_demo»
    ejecutando los siguientes comandos:

    $mkdir flask_docker_demo
    $cd flask_docker_demo #to change the directory

    También puede crear la carpeta y los archivos anteriores manualmente. Si no tiene instalado Gedit, puede usar cualquier editor de código.
    Ingrese lo siguiente en la terminal

    $gedit demo.py

    Pegue el siguiente código en «demo.py».

    from flask import Flask
    app = Flask(__name__)
      
    @app.route('/')
    def hello():
        return "welcome to the flask tutorials"
      
      
    if __name__ == "__main__":
        app.run(host ='0.0.0.0', port = 5001, debug = True
  • Inserte el siguiente código en el Dockerfile creado anteriormente

    Agregue un nuevo archivo y el nombre es «Dockerfile» si aún no lo ha creado usando gedit. No le des ninguna prórroga.
    Pegue el siguiente código en él

    FROM python:alpine3.7
    COPY . /app
    WORKDIR /app
    RUN pip install -r requirements.txt
    EXPOSE 5001
    ENTRYPOINT [ "python" ]
    CMD [ "demo.py" ]

    Veamos qué hace nuestro Dockerfile. FROM python: alpine3.7 extrae la imagen de python 3.7 del docker hub, el comando COPY copia la aplicación del matraz en el contenedor y el comando WORKDIR establece el directorio de trabajo. «EJECUTAR pip install -r requisitos.txt» este comando instalará cada requisito escrito en el archivo «requisitos.txt» uno por uno en el sistema host. EXPOSE , como dice el nombre, expone el puerto 5001 que la aplicación Flask usará para el contenedor para que luego se pueda mapear con el puerto del sistema. Entrypoint y CMD juntos simplemente ejecutan el comando «python demo.py» que ejecuta este archivo.

  • Copie lo siguiente en el archivo «requirements.txt»

    Cree los requisitos.txt manualmente si aún no lo ha creado con gedit y agregue la siguiente línea en él

    flask
  • Deberíamos tener la siguiente estructura en este momento.

  • Prueba la aplicación del matraz

    Vaya a la carpeta raíz «flask-docker-demo» si aún no está en este directorio y ejecute el siguiente comando «python demo.py»
    . Debería iniciar nuestro servidor de desarrollo que viene con el frasco en «http://0.0 .0.0:5001/”.
    Vea la captura de pantalla a continuación.

    Deberíamos tener el siguiente resultado en el navegador.

  • Cierra el servidor presionando CTRL + C

    Actualice el navegador nuevamente y debería dar un error ya que el servidor se ha cerrado.

Creación de una imagen acoplable del proyecto y cómo ejecutarlo

  • Cree la imagen de Docker

    Asegúrese de estar en el directorio raíz del proyecto y ejecute el siguiente comando.

    sudo docker build --tag flask-docker-demo-app .

    El comando anterior creará una aplicación con la etiqueta matraz-docker-demo-app.
    Nota: Introduzca la contraseña si es necesario.

    Consulte la captura de pantalla a continuación.

  • Ejecute la imagen acoplable que acabamos de crear.

    Ejecute el siguiente comando:

    sudo docker run --name flask-docker-demo-app -p 5001:5001 flask-docker-demo-app


    En el comando anterior, el parámetro -name da nombre al contenedor y el parámetro -p asigna el puerto 5001 del host (mi computadora portátil en este caso) al puerto 5001 del contenedor, ya que el contenedor está aislado y necesitamos mapearlo para acceder a él. del ambiente externo. Y, por último, «flask-docker-demo-app» se refiere a la imagen que se ejecutará.

  • Prueba nuevamente .

    Actualizar el navegador

  • Cierre la imagen ejecutando el comando » docker stop «. Para conocer la identificación del contenedor, ingrese el comando » docker ps «. Muestra todos los contenedores en ejecución. Visite el sitio web de Docker para obtener más comandos de Docker como » guardar la imagen como archivo tar » y exportarla en otro sistema.

Publicación traducida automáticamente

Artículo escrito por Rahul Gunkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *