setupHijackConn only closed the response body when the upgrade failed.
otelhttp ends its client span when the body is closed, so the span of
every successful ContainerAttach, ContainerExecAttach and DialHijack
call was never ended. A 101 response has no body, so closing it does not
touch the hijacked connection.
Signed-off-by: berce <75228263+bercedev@users.noreply.github.com>
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
The docker command uses this package to communicate with the daemon. It can
also be used by your own Go applications to do anything the command-line
interface does; running containers, pulling or pushing images, etc.
For example, to list all containers (the equivalent of docker ps --all):
packagemainimport("context""fmt""github.com/moby/moby/client")funcmain(){// Create a new client with "client.FromEnv" (configuring the client// from commonly used environment variables such as DOCKER_HOST and// DOCKER_API_VERSION) and set a custom User-Agent.//// API-version negotiation is enabled by default to allow downgrading// the API version when connecting with an older daemon version.apiClient,err:=client.New(client.FromEnv,client.WithUserAgent("my-application/1.0.0"),)iferr!=nil{panic(err)}deferapiClient.Close()// List all containers (both stopped and running).result,err:=apiClient.ContainerList(context.Background(),client.ContainerListOptions{All:true,})iferr!=nil{panic(err)}// Print each container's ID, status and the image it was created from.fmt.Printf("%s %-22s %s\n","ID","STATUS","IMAGE")for_,ctr:=rangeresult.Items{fmt.Printf("%s %-22s %s\n",ctr.ID,ctr.Status,ctr.Image)}}