Caso real: un deploy previo deja los contenedores levantados con otros puertos; el siguiente deploy.ps1 vps hacia up -d y compose reusaba los puertos viejos (se veia 3001 cuando el nuevo debia ser otro). El usuario lo pidio explicitamente: down antes de up.
openwebui/wordpress (compose): docker compose down antes del up — sin -v, asi los volumenes (modelo de 2 GB ya descargado) se conservan.
hermes/openclaw (docker run con nombre fijo): docker rm -f del contenedor previo antes del run — un contenedor parado de un run anterior causaba Conflict silencioso.
Quoting de cmd /c
Comillas anidadas dentro de cmd /c son fragiles (el parser de cmd). Patron usado: tokens separados, pwsh expande $var y cmd no ve comillas internas:
cmd /c docker compose -f $ComposeFile down '>' NUL '2>&1'
Verificado con EAP=Stop + stderr real de docker (proyecto inexistente, rc=1): el script sigue sin NativeCommandError.
Verificacion (pwsh 7.4.6)
Parse AST 4/4 OK
down sobre proyecto inexistente: rc=1 propagado, script sigue
rm inexistente: rc=0, script sigue
## Summary
Caso real: un deploy previo deja los contenedores levantados con otros puertos; el siguiente `deploy.ps1 vps` hacia `up -d` y compose reusaba los puertos viejos (se veia 3001 cuando el nuevo debia ser otro). El usuario lo pidio explicitamente: down antes de up.
- **openwebui/wordpress** (compose): `docker compose down` antes del up — sin `-v`, asi los volumenes (modelo de 2 GB ya descargado) se conservan.
- **hermes/openclaw** (docker run con nombre fijo): `docker rm -f` del contenedor previo antes del run — un contenedor parado de un run anterior causaba `Conflict` silencioso.
## Quoting de cmd /c
Comillas anidadas dentro de cmd /c son fragiles (el parser de cmd). Patron usado: tokens separados, pwsh expande `$var` y cmd no ve comillas internas:
cmd /c docker compose -f $ComposeFile down '>' NUL '2>&1'
Verificado con EAP=Stop + stderr real de docker (proyecto inexistente, rc=1): el script sigue sin NativeCommandError.
## Verificacion (pwsh 7.4.6)
- Parse AST 4/4 OK
- down sobre proyecto inexistente: rc=1 propagado, script sigue
- rm inexistente: rc=0, script sigue
- openwebui/wordpress: docker compose down antes del up para que los
puertos nuevos apliquen (volumenes preservados: el modelo no se
re-descarga). Sin comillas anidadas en cmd /c (tokens separados,
stderr descartado de forma segura con EAP=Stop).
- hermes/openclaw: docker rm -f del contenedor previo antes del run
(un contenedor parado de un run anterior causaba Conflict).
hermes
merged commit 912105f16f into main2026-09-12 20:55:43 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Caso real: un deploy previo deja los contenedores levantados con otros puertos; el siguiente
deploy.ps1 vpshaciaup -dy compose reusaba los puertos viejos (se veia 3001 cuando el nuevo debia ser otro). El usuario lo pidio explicitamente: down antes de up.docker compose downantes del up — sin-v, asi los volumenes (modelo de 2 GB ya descargado) se conservan.docker rm -fdel contenedor previo antes del run — un contenedor parado de un run anterior causabaConflictsilencioso.Quoting de cmd /c
Comillas anidadas dentro de cmd /c son fragiles (el parser de cmd). Patron usado: tokens separados, pwsh expande
$vary cmd no ve comillas internas:Verificado con EAP=Stop + stderr real de docker (proyecto inexistente, rc=1): el script sigue sin NativeCommandError.
Verificacion (pwsh 7.4.6)