Este tutorial aborda la containerización del proyecto de catálogo de habilidades skills, permitiendo un despliegue consistente en diversos entornos mediante Docker. A continuación, se detalla un proceso paso a paso para empaquetar la aplicación.
Preparación del entorno
Antes de iniciar, verifique que su sistema cuente con los siguiantes componentes:
- Docker Engine (versión 20.10 o superior)
- Git (para clonar el repositorio)
Confirme la instalación de Docker con los comandos:
docker --version
docker-compose --version
Paso 1: Obtención del código fuente
Clone el repositorio del proyecto y acceda al directorio resultante:
git clone https://ejemplo.com/proyecto/skills.git
cd skills
Paso 2: Configuración del Dockerfile
En la raíz del proyecto, cree un archivo Dockerfile con el siguiente contenido:
# Imagen base de Python
FROM python:3.10-alpine
# Definición del directorio de trabajo
WORKDIR /codigo
# Transferencia de archivos
COPY . .
# Instalación de paquetes
RUN pip install --no-cache-dir -r requerimientos.txt
# Puerto expuesto
EXPOSE 5000
# Comando de inicio
CMD ["python", "ejecutar.py"]
Paso 3: Generación de la imagen Docker
Ejecute el siguiente comando en el directorio del proyecto para construir la imagen:
docker build -t habilidades:v1 .
Para listar las imágenes generadas:
docker images | grep habilidades
Paso 4: Ejecución del contenedor
Inicie el contenedor con un mapeo de puertos personalizado:
docker run -d -p 8080:5000 --name contenedor-habilidades habilidades:v1
Verifique el estado de ejecución:
docker ps | grep contenedor-habilidades
Paso 5: Validación del servicio
Acceda a http://localhost:8080 desde un navegador para comprobar el funcionamiento. Revise los registros del contenedor si es necesario:
docker logs contenedor-habilidades
Resolución de problemas comunes
Conflicto de puertos
Si el puerto está ocupado, ajuste el mapeo en el comando docker run, por ejemplo:
docker run -d -p 9090:5000 --name contenedor-habilidades habilidades:v1
Fallos en la instalación de dependencias
Asegúrese de que el archivo requerimientos.txt exista y que la conexión a internet sea estable.