Saltar a contenido

Dockerización.

Tarea a realizar

Crear un Dockerfile que:

  • Instale Python
  • Instalar requirements.txt
  • Ejecute la documentación

¿Qué es la dockerización?

Proceso de convertir una aplicación en un contenedor usando Docker, para que pueda ejecutarse de forma aislada y consistente en cualquier entorno.

Empaquetar una aplicación con todo lo necesario para que funcione igual en cualquier sitio.

Estructura 🏗

Dentro de nuestro proyecto deberíamos tener algo así:

proyecto/
├── docs/
|   ├── index.md    
|   └── ...         <-- (los demás archivos que tengas)
├── mkdocs.yml
├── requirements.txt
└── Dockerfile      <-- (hay que crearlo)

Dockerfile

El archivo que tenemos q crear contendrá lo siguiente:

Puedes ayudarte de la guía haciendo clic en el enlace.

dockerfile
# Imagen base de Python
FROM python:3.14-alpine 

# Directorio de trabajo dentro del contenedor
WORKDIR /app

# Copia todo el proyecto al contenedor
COPY . .

# Insalamos todo lo establecido en requirements.txt que es una muy buena práctica para evitar problemas.
RUN pip install -r requirements.txt

# Expone el puerto donde corre Zensical
EXPOSE 8085

# Comando que ejecuta la documentación
CMD ["zensical", "serve", "-a", "0.0.0.0:8085"]

En cuanto al requirements.txt en mi caso lo tendría de la siguiente forma, lo más importante aquí es que tengamos el zensical para q no haya problemas.

requirements.txt
zensical
mkdocs-glightbox

Dockerización.

Contruimos la imagen con

cd ruta/proyecto
docker build -t [Nombre-imgen] .
Imagen

docker-zensical

Ejecutamos el contenedor en nuestro caso con los puertos 8085:8085 que son los que hemos especificado.

  • PUERTO_PC es el que especificamos dentro de Dockerfile en "EXPOSE 8085"
  • PUERTO_CONTENEDOR es el que especificamos dentro de Dockerfile en "CMD ["zensical", "serve", "-a", "0.0.0.0:8085"]"
docker run -p PUERTO_PC:PUERTO_CONTENEDOR [nombre-imagen]
Imagen

docker run

Comprobamos que funciona correctamente accediendo por el puerto que especificamos http://localhost:8085

comprobación