Compilación remota de PreTeXt con Docker y WSL2 en Windows 11

🧩 Compilación remota de PreTeXt con Docker y WSL2 en Windows 11

Este tutorial describe cómo configurar un entorno Docker + WSL2 en una desktop con Windows 11 para compilar proyectos PreTeXt almacenados en una laptop remota, usando una conexión LAN (192.168.x.x).


🧱 1️⃣ Contexto inicial

  • Laptop (192.168.0.120): contiene los archivos del proyecto PreTeXt
    \\HIROSHIMA\Proyectos\Libro_Generico_PreText
  • Desktop (192.168.0.241): ejecuta
    • Windows 11
    • Docker Desktop (con backend WSL2)
    • Imagen Docker pretext-curso (CLI de PreTeXt)

Objetivo:
💡 Que el contenedor Docker en la desktop acceda a los archivos de la laptop, compile los .ptx, y guarde los resultados directamente en la laptop.


🌐 2️⃣ Problema inicial

Por defecto, Docker Desktop usa una red NAT interna (172.x.x.x) que aísla los contenedores y la VM Linux (docker-desktop) de la red local (192.168.x.x).
Esto impedía hacer ping o montar la carpeta Samba (SMB) de la laptop.

ip addr show eth0
# inet 172.30.x.x
ping 192.168.0.120
# Host unreachable

🧰 3️⃣ Solución: habilitar red “real” (modo mirrored)

Archivo creado en C:\Users\rommel\.wslconfig:

[wsl2]
networkingMode=mirrored
memory=4GB
processors=4
swap=2GB
localhostForwarding=true

Luego:

wsl --shutdown
taskkill /F /IM "Docker Desktop.exe"

Tras reiniciar Docker, la VM docker-desktop obtiene una IP LAN real (192.168.0.x)
y ya puede comunicarse con la laptop:

ping 192.168.0.120
# 64 bytes from 192.168.0.120: time=3 ms

📂 4️⃣ Montaje SMB de la laptop dentro de Docker

mkdir -p /mnt/hiroshima
mount -t cifs //192.168.0.120/Proyectos/Libro_Generico_PreText /mnt/hiroshima   -o username=rommel,password=aaa,vers=3.0,uid=0,gid=0,file_mode=0777,dir_mode=0777

Verificación:

ls /mnt/hiroshima
touch /mnt/hiroshima/prueba.txt

✅ Lectura/escritura confirmadas.


🧱 5️⃣ Ejecución del contenedor PreTeXt

docker run -it --rm -v /mnt/hiroshima:/workspace -w /workspace pretext-curso bash

Dentro del contenedor:

pretext build web

✅ Compilación exitosa.
✅ Archivos resultantes guardados en la laptop en:

c:\Proyectos\Libros_Generico_PreText\output

🔄 6️⃣ Estado actual

ComponenteEstado
Red entre Docker y laptop✅ Conectividad LAN (192.168.x.x)
Montaje SMB en Docker✅ Con autenticación y permisos completos
Contenedor PreTeXt✅ Compila y escribe en carpeta remota
Laptop✅ No tiene PreTeXt instalado

Cuando se ejecuta el comando de compilación (o creación) de los archivos PreTeXt en tu Desktop (el servidor con Docker), estás haciendo tres cosas:

  • Creas el entorno de compilación (contenedor)

  • Montas la carpeta compartida /mnt/hiroshima (que apunta a la laptop)

  • Ejecutas el intérprete de bash dentro del contenedor, donde luego corres pretext build …

  • El resultado se guarda automáticamente en la laptop.

🚧 2️⃣ Qué limita esto

  • La laptop no tiene PreTeXt ni Docker, por lo tanto no puede compilar por sí sola.

  • Todo se ejecuta en la Desktop, así que:

  • Si la Desktop está apagada → no hay compilación.

  • Si no ejecutas el comando → el contenedor no existe.

🧠 Conclusión

Se ha implementado un entorno híbrido LAN–Docker donde:

  • La desktop actúa como servidor de compilación.
  • Los archivos residen en la laptop.
  • La compilación ocurre remotamente dentro de Docker.
  • Los resultados se guardan en la laptop automáticamente.

Este enfoque es ideal para laboratorios, aulas o entornos de enseñanza remota basados en PreTeXt.


✨ Preparado por Rommel Contreras — Octubre 2025