Tutorial Base: https://youtu.be/YENw-bNHZwg?si=9J8zq4_WKu-au9Jp
Código de GH: https://github.com/Nelly5469/hello-api
Es necesario tener instalado virtualenv
, si aún no se tiene, se ejecuta pip install virtualenv
.
Se crea el entorno virtual con virtualenv venv
Se activa el entorno virtual:
venv/Scripts/activate.bat
en cmd
hello_api\\venv\\Scripts> .\\activate.ps1
en powershell
Para comprobar si sí se activó se tiene que ver así:
(venv) PS C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api\\venv\\Scripts>
Instalar pip install flask
Para ejecutar la app:
(venv) PS C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api> python src/app.py
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on <http://127.0.0.1:4000>
* Running on <http://10.13.27.12:4000>
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 773-207-946
127.0.0.1 - - [04/Jul/2025 12:32:15] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [04/Jul/2025 12:32:15] "GET /favicon.ico HTTP/1.1" 404 -
10.13.27.12 - - [04/Jul/2025 12:32:20] "GET / HTTP/1.1" 200 -
10.13.27.12 - - [04/Jul/2025 12:32:20] "GET /favicon.ico HTTP/1.1" 404 -
La primera ip es para el localhost y la segunda para cualquier dispositivo que esté conectada a la misma red que el localhost
FROM ubuntu:20.04
# Actualiza el sistema e instala Python y pip
RUN apt-get update && apt-get install -y \\
python3-dev \\
python3-pip \\
&& apt-get clean \\
&& rm -rf /var/lib/apt/lists/*
# Actualiza pip a la última versión
RUN pip3 install --upgrade pip
# New workdir called app
WORKDIR /app
# Copy current files to app
COPY . /app
# Install pip3 libraries from requirements.txt
RUN pip3 --no-cache-dir install -r requirements.txt
CMD ["python3", "src/app.py"]
Determina los detalles de creación de una imagen (la cual se usará para ejecutar el contenedor)
(venv) C:\\Users\\Nelly\\Documents\\propio\\api_gateway\\hello_api>pip freeze > requirements.txt
Copiar las librerías requeridas en requirements.txt