63 lines
3.8 KiB
Markdown
63 lines
3.8 KiB
Markdown
# Mezclar los dos docker-compose en `vscode-server/docker-compose.yaml`
|
|
|
|
## Context
|
|
|
|
Existen dos entornos de desarrollo casi idénticos:
|
|
|
|
- [dev-environment/vscode-server/docker-compose.yaml](dev-environment/vscode-server/docker-compose.yaml) — usuario `aleleba`, túnel `vscode-aleleba`, rutas de host base `/home/aleleba/nas/docker/`.
|
|
- [dev-environment/vscode-server-telus/docker-compose.yaml](dev-environment/vscode-server-telus/docker-compose.yaml) — usuario `aleleba-telus`, túnel `vscode-aleleba-telus`, rutas de host base `/Volumes/docker/` (estilo Mac).
|
|
|
|
Se quiere un único archivo que combine ambos: conservar la identidad personal (`aleleba` / `vscode-aleleba`) pero usar la ruta base de host `/Volumes/docker/` del entorno telus, dejando comentada la ruta anterior de host. Además debe montar **los dos** volúmenes de proyectos (`projects` y `projects-telus`). El resultado se escribe **modificando** el archivo `vscode-server/docker-compose.yaml`.
|
|
|
|
## Decisiones confirmadas
|
|
|
|
- Túnel: `vscode-aleleba` — Usuario: `HOME_USER: aleleba` (sin cambios; ya son los valores de este archivo).
|
|
- Ruta base de host **activa**: `/Volumes/docker/`.
|
|
- Llaves SSH (`id_key`, `id_key.pub`, `id_rsa`, `id_rsa.pub`, `known_hosts`): usar también base uniforme `/Volumes/docker/projects/synology-apps-containers/dev-environment/...` (NO la ruta `/Users/a.barrientes/...` del archivo telus).
|
|
- Segundo volumen de proyectos `projects-telus` se monta en `/home/aleleba/projects-telus`.
|
|
- Todos los targets del contenedor usan `/home/aleleba/...` (porque el usuario es `aleleba`).
|
|
|
|
## Cambios a realizar (solo en `dev-environment/vscode-server/docker-compose.yaml`)
|
|
|
|
La sección `environment:` no cambia (ya tiene `HOME_USER: aleleba` y `VSCODE_TUNNEL_NAME: vscode-aleleba`).
|
|
|
|
Reescribir el bloque `volumes:` de modo que **cada** volumen tenga tres líneas:
|
|
1. `# - /volume1/docker/...` (comentada, se conserva).
|
|
2. `# - /home/aleleba/nas/docker/...` (comentada — la ruta anterior de este archivo, ahora comentada según lo pedido).
|
|
3. `- /Volumes/docker/...` (activa — la ruta base nueva).
|
|
|
|
Patrón por volumen (ejemplo con `projects`):
|
|
```yaml
|
|
# - /volume1/docker/projects:/home/aleleba/projects
|
|
# - /home/aleleba/nas/docker/projects:/home/aleleba/projects
|
|
- /Volumes/docker/projects:/home/aleleba/projects
|
|
```
|
|
|
|
Añadir el segundo volumen de proyectos justo después de `projects`:
|
|
```yaml
|
|
# - /volume1/docker/projects-telus:/home/aleleba/projects-telus
|
|
- /Volumes/docker/projects-telus:/home/aleleba/projects-telus
|
|
```
|
|
|
|
Aplicar el mismo patrón (línea activa `/Volumes/docker/...`, target `/home/aleleba/...`) a todos los volúmenes existentes:
|
|
`certs`, `.gnupg`, `.npmrc`, `gh config.yml`, `gh hosts.yml`, `.gitconfig`, las 5 llaves SSH/`known_hosts`, `docker.config.json`, `kubernetes.config`, `daemon.json`, `vscode-server/custom-scripts`, `vscode-server/extensions.json`, `.claude.json`, `claude.settings.json`, `claude-plans`, `claude-plugins`, `claude-sessions`, `claude-skills`, `claude-commands`, `claude-hooks`, `claude-agents`.
|
|
|
|
Notas de mapeo:
|
|
- Se conservan los sub-paths propios de este archivo (p. ej. `vscode-server/custom-scripts` y `vscode-server/extensions.json`, NO los `vscode-server-telus/...`) y `claude.settings.json` (NO `claude-telus.settings.json`).
|
|
- Las llaves SSH quedan en `/Volumes/docker/projects/synology-apps-containers/dev-environment/id_key` → `/home/aleleba/.ssh/id_key`, etc.
|
|
|
|
## Verificación
|
|
|
|
Desde `dev-environment/vscode-server/`:
|
|
|
|
```bash
|
|
docker compose config
|
|
```
|
|
|
|
Debe validar sin errores de YAML y mostrar el servicio `vscode-server` con:
|
|
- `HOME_USER=aleleba`, `VSCODE_TUNNEL_NAME=vscode-aleleba`.
|
|
- Todos los binds resueltos desde `/Volumes/docker/...`.
|
|
- Ambos montajes: `/home/aleleba/projects` y `/home/aleleba/projects-telus`.
|
|
|
|
(Opcional) Revisar visualmente que cada volumen tiene su línea `/home/aleleba/nas/docker/...` comentada.
|