greenled / portainer-stack-utils

CLI client for Portainer

Home Page:https://hub.docker.com/r/greenled/portainer-stack-utils/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Proxy command doesn't handle websockets

greenled opened this issue · comments

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:

  1. Run psu proxy --endpoint primary --port 12345
  2. In another shell, run export DOCKER_HOST=tcp://localhost:12345
  3. Run docker exec backend echo "hello"
  4. 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