mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-07 03:15:56 +00:00
render_override takes a service's entrypoint and command from the output of `docker compose config`, which already prints a literal `$` as `$$`, and the image's Entrypoint and Cmd from `docker image inspect`, which are raw. It escaped the combined argv once more, so a service command reading a variable at runtime (`$$REDIS_PASSWORD` in compose.yml) reached the override as `$$$$` and the container as `$$`, which the shell expands to its PID. redis then required "<pid>REDIS_PASSWORD" and every authenticated ping failed with WRONGPASS. Only the image-derived parts are escaped now; the service's own argv is written as compose config printed it. A new test keeps a service command's `$$` intact next to an image entrypoint; the existing tests still require an image Cmd's `$VAR` to become `$$VAR`. Local Nextcloud update deploy: the redis override holds `$$`, the container Cmd `$REDIS_PASSWORD`, and the authenticated ping answers PONG on the first attempt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>