This function was setting `text/plain` as default content-type for any
request that had a non-nil body.
However, this would also set the content-type if (e.g.) `http.NoBody` was set,
or if an empty reader was used, which would result in the daemon potentialy
rejecting the request, as it validates request to be using `application/json`;
d9ee22d1ab/daemon/server/httputils/httputils.go (L47-L58)
=== RUN TestCommitInheritsEnv
commit_test.go:30: assertion failed: error is not nil: Error response from daemon: unsupported Content-Type header (text/plain): must be 'application/json'
--- FAIL: TestCommitInheritsEnv (0.02s)
This patch removes setting the default content-type.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
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 that handles common environment variables// for configuration (DOCKER_HOST, DOCKER_API_VERSION), and does// API-version negotiation to allow downgrading the API version// when connecting with an older daemon version.apiClient,err:=client.New(client.FromEnv,client.WithAPIVersionNegotiation())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)}}