Contenedorización con Docker
docmd genera recursos estáticos, lo que lo hace ideal para despliegues en contenedores. Puedes descargar la imagen oficial precompilada o generar un Dockerfile personalizado a través de la CLI del Deployer.
Imagen de contenedor oficial
La imagen de contenedor precompilada permite compilar sitios y previsualizarlos localmente sin necesidad de instalar Node.js en el sistema anfitrión. Las imágenes se publican para arquitecturas linux/amd64 y linux/arm64.
Comandos de inicio rápido
# Descargar imagen de versión fija
docker pull ghcr.io/docmd-io/docmd:0.9.0
# Compilar salida estática (monta el directorio local docs)
docker run -v $(pwd)/docs:/docs -v $(pwd)/site:/site ghcr.io/docmd-io/docmd:0.9.0 build
# Iniciar servidor de previsualización local
docker run -p 3000:3000 ghcr.io/docmd-io/docmd:0.9.0
Fija etiquetas de versión específicas (por ejemplo, 0.9.0) en las canalizaciones de CI en producción para garantizar la reproducibilidad de las compilaciones.
Flujo de trabajo con Docker Compose
version: '3.8'
services:
docs:
image: ghcr.io/docmd-io/docmd:0.9.0
command: build
volumes:
- ./docs:/docs
- ./site:/site
- ./docmd.config.json:/docmd.config.json:ro
serve:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./site:/usr/share/nginx/html:ro
depends_on:
- docs
Especificaciones de la imagen
| Propiedad | Especificaciones |
|---|---|
| Sistema operativo base | Alpine Linux |
| Mapeo de identidad de usuario | Remapea la identidad root del contenedor al UID/GID del anfitrión mediante su-exec automáticamente. |
| Directorio de trabajo predeterminado | /docs (personalizable mediante la opción -w). |
| Arquitecturas | linux/amd64, linux/arm64 |
Directorio de trabajo y permisos personalizados
El punto de entrada detecta automáticamente el UID y GID del propietario para los volúmenes montados y reduce los privilegios antes de ejecutar los comandos init, build o dev. Los archivos escritos en los montajes del anfitrión conservan la propiedad del usuario anfitrión.
docker run -v $(pwd):/workspace -w /workspace ghcr.io/docmd-io/docmd:0.9.0 init
Dockerfile multietapa generado
Genera un Dockerfile personalizado utilizando la CLI del Deployer:
npx @docmd/core deploy --docker
El Dockerfile multietapa generado realiza:
- Etapa de compilación: Instala la versión fijada de
@docmd/corey compila los recursos estáticos HTML/CSS/JS. - Etapa de servicio: Copia la salida compilada en una imagen ligera de
nginx:alpine.
Para generar las configuraciones de Docker y NGINX conjuntamente:
npx @docmd/core deploy --docker --nginx
Compilación y ejecución del contenedor
docker build -t my-docs .
docker run -p 8080:80 my-docs
Accede al sitio servido en http://localhost:8080.