portainer-stack-utils
portainer-stack-utils copied to clipboard
Proxy command doesn't handle websockets
Describe the bug
When using PSU as a proxy to an endpoint's Docker daemon, commands requiring a websocket connection (like docker attach, docker exec, docker system events) fail with an unable to upgrade to tcp, received 200 error or just hang up.
To Reproduce Given:
- There is a "primary" endpoint
- There is a "backend" container running on that endpoint
- There is a Docker client installed locally
Steps to reproduce the behavior:
- Run
psu proxy --endpoint primary --port 12345 - In another shell, run
export DOCKER_HOST=tcp://localhost:12345 - Run
docker exec backend echo "hello" - See error
Expected behavior PSU should correctly proxy the request by handling the protocol upgrade
Standard/Error output
unable to upgrade to tcp, received 200
Standalone executable binary (please complete the following information):
- OS: Linux
- Shell interpreter: Bash
- Portainer version: 1.21.0
- Program version: 2.0.0-alpha.3