Usos
Crear una imagen para compartir el tablero y ejecutarlo de manera local, usar la IP de la máquina virtual para compartir el tablero de manera global.
Prerequisitos
Crear una máquina virtual en Azure con docker y git instalados, y una cuenta en Docker Hub.
Git nos servirá para obtener los archivos del tablero original y la posible gestión de modificaciones futuras.
Pasos (desde la terminal de la máquina virtual)
1. Clonar el repositorio de GitHub donde se encuentra el tablero de Dash
git clone https://github.com/laguna-ai/demo-quanto.git
2. Ubicarnos en la carpeta del proyecto clonado y preparar archivos
cd demo-quanto
La carpeta debe contener, al menos, los siguientes archivos:
a) Archivo python con el código del tablero. Ejemplo: dashboard.py
Las últimas líneas del código deben estar de la siguiente manera para que la IP quede bien configurada:
# Run the app
if __name__ == '__main__':
app.run_server(debug=True,host="0.0.0.0",port=80)
b) Archivo de requerimientos donde se encuentran las bibliotecas a usar en el tablero. Usualmente: requirements.txt
c) El archivo Dockerfile, el cual puede ser creado desde la terminal usando el comando touch Dockerfile
Se accede a él usando el comando vi Dockerfile
Se edita luego de presionar la tecla i
Al terminar edición, se presiona la tecla esc y se escribe :w para guardar cambios.
Para salir, se escribe :q
En este caso, nuestro Dockerfile es:
FROM python:3.11.3
# Create a directory where the code is to be hosted
RUN mkdir /app # Define the working directory in the container
WORKDIR /app
# Copy and install the requirements
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
# Copy application code to the image
COPY . /app/
CMD ["python", "dashboard.py"]
3. Crear imagen en Docker
Usamos el siguiente comando en terminal:
sudo docker build -t jsav1/first-dashboard:1.0 .
Aquí, jsav1 es el nombre del usuario de Dockerhub, first-dashboard es el nombre de la imagen y 1.0 es el tag con la versión de la aplicación. Todo se escoge según cuenta de usuario y conveniencia de nombres y versión.
Podemos verificar que la imagen se creó correctamente usando
sudo docker images
Entre la lista de imágenes debe aparecer jsav1/first-dashboard con tag 1.0.
4. Desplegar aplicación en la red
Usamos el siguiente comando en terminal:
sudo docker run -d -p 80:80 jsav1/first-dashboard:1.0
Aquí, el primer 80 es el puerto http que usa Azure, mientras el segundo 80 es el puerto de la configuración de la app (podría ser otro pero los escogimos igual por simplicidad).
Una vez se ejecuta la app podemos usar la IP de la máquina junto con el puerto 80 para ver el tablero en cualquier computador con internet. Ponemos en cualquier navegador la IP 4.236.164.13:80
5. Subir imagen a Docker Hub y compartir
De ser necesario usamos ctrl+c para detener la aplicación. En la terminal escribimos
sudo docker push jsav1/first-dashboard:1.0
Luego de acceder a Docker Hub y refresecar la página, aparecerá el nuevo repositorio para el usuario jsav1. De esta manera queda la imagen de nuestro tablero para ser compartido mediante el repositorio first-dashboard de DockerHub.
Para clonar la imagen, desde otro computador con acceso al repositorio, se usa el comando
sudo docker pull jsav1/first-dashboard:1.0
¡Disfruta y comparte!
