mirror of
https://github.com/moby/moby.git
synced 2026-08-04 15:11:00 +00:00
Merge pull request #50471 from austinvazquez/cherry-pick-b1ce0c89f0214cc6711c5c34e714d8bda737c65a-to-28.x
[28.x backport] client: always send (empty) body on push
This commit is contained in:
@@ -66,7 +66,16 @@ func (cli *Client) ImagePush(ctx context.Context, image string, options image.Pu
|
||||
}
|
||||
|
||||
func (cli *Client) tryImagePush(ctx context.Context, imageID string, query url.Values, registryAuth string) (*http.Response, error) {
|
||||
return cli.post(ctx, "/images/"+imageID+"/push", query, nil, http.Header{
|
||||
// Always send a body (which may be an empty JSON document ("{}")) to prevent
|
||||
// EOF errors on older daemons which had faulty fallback code for handling
|
||||
// authentication in the body when no auth-header was set, resulting in;
|
||||
//
|
||||
// Error response from daemon: bad parameters and missing X-Registry-Auth: invalid X-Registry-Auth header: EOF
|
||||
//
|
||||
// We use [http.NoBody], which gets marshaled to an empty JSON document.
|
||||
//
|
||||
// see: https://github.com/moby/moby/commit/ea29dffaa541289591aa44fa85d2a596ce860e16
|
||||
return cli.post(ctx, "/images/"+imageID+"/push", query, http.NoBody, http.Header{
|
||||
registry.AuthHeader: {registryAuth},
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user