Appearance
Documentación con Docker
Este proyecto está optimizado para ejecutarse en Docker usando una imagen lo más liviana posible.
Características
- Multi-stage build: Solo los archivos necesarios se copian al contenedor final
- nginx:alpine: Servidor web ultraliviano (~40MB)
- Compresión gzip: Archivos CSS y JS comprimidos
- Cache optimizado: Recursos estáticos cacheados por 7 días
- Health checks: Monitoreo automático de la salud del contenedor
Requisitos
- Docker 20.10+
- Docker Compose 1.29+ (opcional, para usar docker-compose.yml)
Uso
Opción 1: Docker Compose (recomendado)
bash
docker-compose up -dLa documentación estará disponible en http://localhost
Para detener:
bash
docker-compose downOpción 2: Docker directo
Construir la imagen:
bash
docker build -t docs:latest .Ejecutar el contenedor:
bash
docker run -d -p 80:80 --name docs docs:latestAcceder: http://localhost
Detener:
bash
docker stop docs
docker rm docsTamaños de imagen
- Stage 1 (Builder): ~400MB (no se incluye en la imagen final)
- Stage 2 (Final): ~50-60MB (incluye nginx + archivos generados)
Variables de entorno
DOCS_PORT: Puerto del host expuesto (por defecto: 80). El puerto interno del contenedor siempre es 80.
Ejemplos
Usar puerto 3000 en el host:
bash
DOCS_PORT=3000 docker-compose up -dO con archivo .env:
bash
echo "DOCS_PORT=3000" > .env
docker-compose up -dDocker directo:
bash
docker run -d -p 3000:80 docs:latestAcceso: http://localhost:3000
Health checks
El contenedor incluye verificación automática de salud:
- Intervalo: 30 segundos
- Timeout: 3 segundos
- Intentos antes de marcar como unhealthy: 3
- Período inicial: 5 segundos
Desarrollo
Si necesitas reconstruir sin caché:
bash
docker-compose build --no-cacheLogs
Ver logs en tiempo real:
bash
docker-compose logs -f docsPublicar en registro (opcional)
bash
docker tag docs:latest tu-registry/docs:latest
docker push tu-registry/docs:latestNotas
- Los archivos estáticos se sirven desde
/usr/share/nginx/html - La configuración de nginx está en
/etc/nginx/conf.d/default.conf - Los archivos HTML no se cachean (permite actualizaciones)
- Recursos como JS, CSS, imágenes se cachean 7 días