File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ RUN dpkg --add-architecture i386 && \
5555 cifs-utils \
5656 nfs-common \
5757 sshfs \
58+ uidmap \
5859 # dependencias runtime (Perl/VNC) que queremos preinstalar
5960 libdatetime-perl \
6061 liblist-moreutils-perl \
Original file line number Diff line number Diff line change @@ -20,6 +20,7 @@ Workspace gráfico KDE/KasmVNC con toolchain Android preinstalado. Usa la imagen
2020
2121## Creación rápida en Coder
2222- ` GPU ` : viene activada por defecto; desactívala si no la necesitas.
23+ - ` Usar red del host ` : conecta el workspace a la red del host (network_mode=host) y no publica puertos.
2324- ` Persistir home en el host ` : monta ` /home/coder ` en ` TF_VAR_users_storage/<usuario>/<workspace> ` .
2425- ` Persistir solo ~/Projects ` : monta ` /home/coder/Projects ` en ` TF_VAR_users_storage/<usuario>/<workspace>/Projects ` .
2526- ` Montar ruta host en ~/host ` : monta una ruta del host en ` /home/coder/host ` .
Original file line number Diff line number Diff line change @@ -60,6 +60,15 @@ data "coder_parameter" "enable_dri" {
6060 mutable = true
6161}
6262
63+ data "coder_parameter" "enable_host_network" {
64+ name = " 02_00_enable_host_network"
65+ display_name = " [Network] Usar red del host (network_mode=host)"
66+ description = " Conecta el contenedor directamente a la red del host (sin mapeo de puertos)."
67+ type = " bool"
68+ default = false
69+ mutable = true
70+ }
71+
6372data "coder_parameter" "git_repo_url" {
6473 name = " 03_git_repo_url"
6574 display_name = " [Code] Repositorio Git (opcional)"
@@ -155,6 +164,7 @@ locals {
155164 workspace_image = " ghcr.io/makespacemadrid/coder-mks-developer-android:latest"
156165 enable_gpu = data. coder_parameter . enable_gpu . value
157166 enable_dri = data. coder_parameter . enable_dri . value
167+ enable_host_network = data. coder_parameter . enable_host_network . value
158168 persist_home_storage = data. coder_parameter . persist_home_storage . value
159169 persist_projects_storage = data. coder_parameter . persist_projects_storage . value
160170 host_mount_path = trimspace (data. coder_parameter . host_mount_path . value )
@@ -878,6 +888,9 @@ resource "docker_container" "workspace" {
878888
879889 privileged = true # Requerido para KVM
880890
891+ # Acceso directo a la red del host (sin mapeo de puertos)
892+ network_mode = local. enable_host_network ? " host" : null
893+
881894 entrypoint = [
882895 " sh" ,
883896 " -c" ,
Original file line number Diff line number Diff line change @@ -191,9 +191,23 @@ resource "coder_agent" "main" {
191191 startup_script = <<- EOT
192192 set -e
193193
194+ # Asegurar soporte de user namespaces para Steam/Flatpak
195+ if ! command -v newuidmap >/dev/null 2>&1; then
196+ echo "WARN: uidmap no disponible; Steam/Flatpak pueden fallar" >&2
197+ fi
198+ if [ -w /etc/subuid ] && ! grep -q "^$USER:" /etc/subuid 2>/dev/null; then
199+ echo "$USER:100000:65536" | sudo tee -a /etc/subuid >/dev/null
200+ fi
201+ if [ -w /etc/subgid ] && ! grep -q "^$USER:" /etc/subgid 2>/dev/null; then
202+ echo "$USER:100000:65536" | sudo tee -a /etc/subgid >/dev/null
203+ fi
204+
194205 # Asegurar permisos de FUSE
206+ if ! getent group fuse >/dev/null 2>&1; then
207+ sudo groupadd -r fuse || true
208+ fi
195209 sudo usermod -aG fuse "$USER" || true
196- if [ -e /dev/fuse ]; then
210+ if [ -e /dev/fuse ] && getent group fuse >/dev/null 2>&1 ; then
197211 sudo chown root:fuse /dev/fuse || true
198212 sudo chmod 666 /dev/fuse || true
199213 fi
You can’t perform that action at this time.
0 commit comments