# Plan: Dockerfile user-agnostic con sudo

## Context

El Dockerfile hardcodea el usuario `aleleba` y no crea la imagen para múltiples usuarios. Cuando se ejecuta con `HOME_USER=aleleba-telus`, el entrypoint.sh intenta sourcear `/home/aleleba-telus/.bashrc` que no existe → "Permission denied".

**Objetivo:** Instalar todo como root en paths globales. Cualquier `HOME_USER` funciona — el entrypoint crea el usuario, le da sudo, y copia la configuración.

## Cambios (solo 3)

### 1. Eliminar creación hardcoded de usuario (líneas 7-11)
Eliminar estas líneas del Dockerfile:
```dockerfile
RUN sudo adduser --disabled-password --gecos "" --uid 1000 ${HOME_USER}
RUN sudo echo "$HOME_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
USER ${HOME_USER}
WORKDIR /home/${HOME_USER}
```

El entrypoint.sh ya hace todo esto al runtime:
- Crea el usuario si no existe (línea 56)
- Le da sudo (línea 58)
- Copia `/usr/bin/.bashrc` al home del usuario (línea 99)

### 2. Mover `.bashrc` a global (líneas 172-179)
Cambiar todos los `~/.bashrc` a `/usr/bin/.bashrc`:

```bash
# Antes
RUN echo "PATH=..." | sudo tee -a ~/.bashrc
RUN echo "export JAVA_HOME=..." | sudo tee -a ~/.bashrc
RUN echo "export ANDROID_HOME=..." | sudo tee -a ~/.bashrc
RUN echo "export ANDROID_SDK_ROOT=..." | sudo tee -a ~/.bashrc
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' | sudo tee -a ~/.bashrc
RUN echo "export EMSDK_QUIET=1" | sudo tee -a ~/.bashrc
RUN echo "source /emsdk/emsdk_env.sh" | sudo tee -a ~/.bashrc
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' | sudo tee -a ~/.bashrc

# Después — todo a /usr/bin/.bashrc
RUN echo "PATH=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export JAVA_HOME=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export ANDROID_HOME=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export ANDROID_SDK_ROOT=..." | sudo tee -a /usr/bin/.bashrc
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' | sudo tee -a /usr/bin/.bashrc
RUN echo "export EMSDK_QUIET=1" | sudo tee -a /usr/bin/.bashrc
RUN echo "source /emsdk/emsdk_env.sh" | sudo tee -a /usr/bin/.bashrc
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' | sudo tee -a /usr/bin/.bashrc
```

El entrypoint.sh ya se encarga de copiar `/usr/bin/.bashrc` a cada home.

### 3. Limpiar redundancias (líneas 155-159)
Eliminar comentarios de "already installed" — no aportan valor.

## Todas las herramientas siguen disponibles

Nada cambia en las instalaciones — todo está en paths globales:

| Herramienta | Dónde |
|---|---|
| `code` | `/usr/bin/code` (base image) |
| `docker` | `/usr/bin/docker` |
| `docker-compose` | `/usr/local/bin/docker-compose` |
| `gh` | `/usr/bin/gh` |
| `node`/`npm`/`nvm` | `/usr/local/bin/` + `/root/.nvm` |
| `python3`/`pip` | `/usr/bin/python3` |
| `pandas`/`numpy`/etc | `pip install` global |
| `kubectl` | `/usr/bin/kubectl` |
| `flux` | `/usr/bin/flux` |
| `conan` | `pip install` global |
| `emsdk` | `/emsdk` |
| `android-sdk` | `/opt/android-sdk` |
| `claude` | `/usr/local/bin/claude` |

Los binarios están en `/usr/bin` y `/usr/local/bin` — paths que **cualquier usuario** puede usar. Solo cambia que ya no está restringido al usuario `aleleba`.

## Verificación

1. `docker build` — sin errores
2. `docker run -e HOME_USER=aleleba` — funciona (mismo usuario)
3. `docker run -e HOME_USER=aleleba-telus` — funciona (nuevo usuario, sin permission denied)
4. Dos contenedores con diferente `HOME_USER` coexisten
5. Cada usuario tiene sudo: `sudo apt-get update` funciona
6. Todos los binarios accesibles: `code`, `docker`, `node`, `python3`, `adb`, `emcc`, `claude`, `gh`, `kubectl`
