Compilación Remota de PreTeXt con Docker en Servidor Windows 11
Este documento describe paso a paso cómo compilar un libro PreTeXt en un entorno remoto:
- Laptop (HIROSHIMA) con VS Code (cliente SSH)
- Desktop (192.168.0.241) con Docker Desktop (host de compilación)
- Proyecto compartido por SMB entre ambas máquinas.
🧩 1. Arquitectura general
Laptop (HIROSHIMA)
│
├── VS Code conectado por SSH → Desktop (Windows 11)
│ ├── Docker Desktop
│ ├── Unidad de red: \\HIROSHIMA\Proyectos\Libro_Generico_PreText
│ └── Compila PreTeXt en contenedor
│
└── Archivos editados desde VS Code remoto
⚙️ 2. Montar la carpeta compartida desde la Desktop
En PowerShell de la desktop (como usuario rommel):
net use Z: \\HIROSHIMA\Proyectos\Libro_Generico_PreText /user:rommel aaa
Verifica:
dir Z:\
Si ves tus archivos (project.ptx, source, output), el montaje SMB está correcto.
🧠 3. Acceder a los archivos desde VS Code remoto
Desde tu laptop (VS Code):
Conéctate por Remote SSH a
192.168.0.241Usa
File → Open Folder…En el cuadro de ruta, escribe directamente:
\\HIROSHIMA\Proyectos\Libro_Generico_PreText
✅ VS Code abrirá los archivos remotamente, aunque vivan en tu laptop.
Ya puedes editar y guardar como si fueran locales.
🐋 4. Verificación de Docker en la Desktop
Abre un terminal en VS Code (sesión SSH) y prueba:
docker version
Si responde con “docker no se reconoce”, significa que la sesión SSH no tiene el PATH de Docker visible.
⚙️ 5. Solución: Docker no reconocido en la sesión SSH
🧠 Causa
El servicio OpenSSH corre como proceso independiente y no carga las variables de entorno ni rutas de tu sesión de escritorio, aunque estés logueado como Hiroshima\rommel.
✅ Soluciones posibles
🅰️ 5.1 Usar Docker dentro de WSL (recomendado)
Docker Desktop usa WSL 2 internamente.
Puedes invocarlo desde tu sesión SSH sin necesidad del ejecutable docker.exe:
wsl -d docker-desktop docker version
Si responde correctamente, puedes compilar PreTeXt así:
wsl -d docker-desktop docker run --rm `
-v "//HIROSHIMA/Proyectos/Libro_Generico_PreText:/workspace" `
-w /workspace `
pretext-curso `
pretext build web
🔹 Usa barras
//en lugar de\\para rutas UNC dentro de WSL.
🅱️ 5.2 Instalar el cliente Docker CLI nativo
Si prefieres tener el comando docker en Windows (para PowerShell y SSH):
- Descarga el CLI estático desde Docker:
https://download.docker.com/win/static/stable/x86_64/docker-27.1.1.zip - Descomprime en:
C:\Program Files\DockerCLI - Agrega al PATH del sistema:
setx /M PATH "$($env:PATH);C:\Program Files\DockerCLI" - Cierra sesión o reinicia el servicio SSH:
Restart-Service sshd
Ahora el comando docker funcionará también desde tus sesiones SSH.
🔁 6. Verificar Docker desde VS Code remoto
docker ps
Si ves la lista vacía (sin error), el cliente está correctamente enlazado al demonio de Docker Desktop.
🧰 7. Compilar PreTeXt dentro del contenedor
Una vez todo está configurado, el comando principal es:
docker run -it --rm `
-v "\\HIROSHIMA\Proyectos\Libro_Generico_PreText:/workspace" `
-w /workspace `
pretext-curso `
pretext build web
O si usas WSL:
wsl -d docker-desktop docker run --rm -v "//HIROSHIMA/Proyectos/Libro_Generico_PreText:/workspace" -w /workspace pretext-curso pretext build web
El resultado se guardará en output/web dentro de la carpeta compartida.
🧩 8. Script opcional build-pretext.ps1
Guarda este script en la desktop para automatizar la compilación:
param([string]$target = "web")
$pathUNC = "\\HIROSHIMA\Proyectos\Libro_Generico_PreText"
$image = "pretext-curso"
Write-Host "Compilando $target desde $pathUNC ..."
# Verificar Docker
try {
docker version | Out-Null
$cmd = "docker run --rm -v `"$pathUNC:/workspace`" -w /workspace $image pretext build $target"
} catch {
Write-Host "Docker no accesible desde Windows, intentando WSL..."
$cmd = "wsl -d docker-desktop docker run --rm -v `"//$($pathUNC.Replace('\','/')):/workspace`" -w /workspace $image pretext build $target"
}
Invoke-Expression $cmd
Write-Host "✅ Compilación $target finalizada."
Ejecútalo desde PowerShell o VS Code remoto:
.uild-pretext.ps1 web
.uild-pretext.ps1 print
.uild-pretext.ps1 kindle
✅ 9. Resultado
Con esta configuración:
- VS Code en la laptop puede editar los archivos del libro en tiempo real.
- Docker Desktop compila desde la desktop.
- Todo el sistema es accesible y reproducible sin duplicar archivos.
Autor: Rommel Contreras
Última actualización: 11 de octubre de 2025
