Skip to content

Commit e15567f

Browse files
Add host networking option and uidmap support
1 parent 0d959c4 commit e15567f

4 files changed

Lines changed: 30 additions & 1 deletion

File tree

Docker-Images/Designer/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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 \

workspaces/DeveloperAndroid/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff 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`.

workspaces/DeveloperAndroid/main.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff 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+
6372
data "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",

workspaces/Maker/main.tf

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)