En este repositorio se encuentra el código fuente de la API personal utilizada para generar reportes en el proyecto PokeQueue para el manejo de colas.
Para este proyecto se utilizaron las tecnologías:
- Python 3.13.1: Como lenguaje principal.
- pyenv: Como un gestor de versiones de python
- Docker: Como gestor de contenedores para facilitar el despliegue de la webapp en la nube.
- Azure COntainer Registry: Como gestor de imagenes de docker en la nube.
Observación. Para poder configurar el ambiente virtual es necesario contar previamente con pyenv instalado.
-
Instalación de pyhton 3.10
pyenv install 3.13.1
-
Creación del ambiente virtual
pyenv virtualenv 3.13.1 nombre_entorno
-
Activación del ambiente virtual
pyenv activate nombre_entorno
-
Instalar todas las dependencias de Python especificadas en el fichero "requirements.txt" usando pip:
pip install nombre_dependencia
-
Ejecutar de manera local:
uvicorn main:app --reload
Observación Para poder realizar este proceso es necesario contar previamente Docker instalado.
-
Hacer el build de la imagen:
bash docker build -t pokeapi:latest . --load -
Crear un contenedor (instancia) de esa imagen para correr la aplicación de forma local:
docker run -d -p 8000:8000 --name pokeapi-container --env-file .env pokeapi:latest
Observación. En caso de haber hecho un build de la imagen nuevamente (luego de hacer cambios en el código fuente de la aplicación) se debe eliminar el contenedor creado previamente para poder crear un nuevo contenedor
docker stop pokeapi-container
docker rm pokeapi-containerObservación Para poder realizar este proceso es necesario contar previamente con azure cli instalado.
-
Iniciar sesión de azure en la consola que se está utilizando:
az login
-
Indicar el nombre del container registry en el que se subirá el contenedor:
-
Agregar las etiquetas a la nueva imagen que se subirá:
docker tag pokeapi:latest nombre_container_registry.azurecr.io/pokeapi:latest // Este comando cambiará con cada nueva release que se haga (comenzará siendo la 0.0.0) docker tag pokeapi:latest nombre_container_registry.azurecr.io/pokeapi:0.0.0 -
Subir (hacer push) de la imagen previamente etiquetada al azure container registry:
docker push nombre_container_registry.azurecr.io/pokeapi:latest docker push nombre_container_registry.azurecr.io/pokeapi:0.0.0