83 lines
2.0 KiB
Markdown
83 lines
2.0 KiB
Markdown
# 🐳 code-server Dev Container con Docker-in-Docker
|
|
|
|
Un contenedor de desarrollo impulsado por [code-server](https://github.com/coder/code-server), con soporte completo para Docker usando Docker-in-Docker (DinD). Todo se configura fácilmente mediante variables de entorno en `.env`.
|
|
|
|
## Características
|
|
|
|
- 💻 code-server (VS Code en el navegador)
|
|
- 🐳 Docker-in-Docker (DinD)
|
|
- 🔐 Autenticación por contraseña o hash
|
|
- 👤 Configuración dinámica de usuario (UID, GID, contraseña)
|
|
- ⚙️ Herramientas preinstaladas: Docker, AWS CLI v2, kubectl, eksctl, Node.js, Python, Java, pre-commit, y más.
|
|
|
|
## Construcción
|
|
|
|
```bash
|
|
docker build -t code-server-dind .
|
|
```
|
|
|
|
## Configuración por Entorno (`.env`)
|
|
|
|
Crea un archivo `.env` con tus preferencias:
|
|
|
|
```env
|
|
DOCKER_USER=coder
|
|
UID=1000
|
|
GID=1000
|
|
TZ=Asia/Taipei
|
|
PASSWORD=tucontraseña
|
|
# O alternativamente:
|
|
# HASHED_PASSWORD=$argon2id$v=19$m=65536,t=3,p=4$...
|
|
```
|
|
|
|
> **Nota:** Solo debes definir `PASSWORD` o `HASHED_PASSWORD`. Usa `PASSWORD=none` para desactivar la autenticación.
|
|
|
|
## Ejecución
|
|
|
|
```bash
|
|
docker run --rm -it \
|
|
--privileged \
|
|
-v code-server-home:/home/coder \
|
|
--env-file .env \
|
|
-p 8080:8080 \
|
|
code-server-dind
|
|
```
|
|
|
|
## Volumen
|
|
|
|
Todo el trabajo se guarda en `/home/coder`, montado mediante el volumen `code-server-home`.
|
|
|
|
## Modos de Autenticación
|
|
|
|
- `PASSWORD=tuclave`: contraseña en texto plano.
|
|
- `HASHED_PASSWORD=...`: contraseña pre-hasheada (segura).
|
|
- `PASSWORD=none`: sin autenticación (no recomendado en producción).
|
|
|
|
## Acceso
|
|
|
|
Una vez corriendo, visita: [http://localhost:8080](http://localhost:8080)
|
|
Inicia sesión con las credenciales de tu archivo `.env`.
|
|
|
|
## Herramientas Incluidas
|
|
|
|
- Docker CLI
|
|
- AWS CLI v2
|
|
- kubectl (`v1.33.0`)
|
|
- eksctl
|
|
- Node.js + npm
|
|
- Python 3 + pipx + venv
|
|
- Java (default-jre)
|
|
- pre-commit
|
|
- siege, jq, git, y más.
|
|
|
|
## Limpieza
|
|
|
|
```bash
|
|
docker volume rm code-server-home
|
|
```
|
|
|
|
## Licencia
|
|
|
|
Este documento se distribuye bajo los términos de la GNU General Public License v3 o posterior.
|
|
Ver el archivo [LICENSE](LICENSE) para más detalles.
|