mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-08-28 11:17:59 +00:00
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com> Vendors in fsouza/docker-client, docker/docker and a few more related. Of particular note, changes to the TweakCapabilities() function from docker/docker along with the parse.IDMappingOptions() function from Buildah. Please pay particular attention to the related changes in the call from libpod to those functions during the review. Passes baseline tests.
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package client // import "github.com/docker/docker/client"
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"net/url"
|
|
"strings"
|
|
|
|
"github.com/docker/distribution/reference"
|
|
"github.com/docker/docker/api/types"
|
|
)
|
|
|
|
// ImageCreate creates a new image based in the parent options.
|
|
// It returns the JSON content in the response body.
|
|
func (cli *Client) ImageCreate(ctx context.Context, parentReference string, options types.ImageCreateOptions) (io.ReadCloser, error) {
|
|
ref, err := reference.ParseNormalizedNamed(parentReference)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
query := url.Values{}
|
|
query.Set("fromImage", reference.FamiliarName(ref))
|
|
query.Set("tag", getAPITagFromNamedRef(ref))
|
|
if options.Platform != "" {
|
|
query.Set("platform", strings.ToLower(options.Platform))
|
|
}
|
|
resp, err := cli.tryImageCreate(ctx, query, options.RegistryAuth)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.body, nil
|
|
}
|
|
|
|
func (cli *Client) tryImageCreate(ctx context.Context, query url.Values, registryAuth string) (serverResponse, error) {
|
|
headers := map[string][]string{"X-Registry-Auth": {registryAuth}}
|
|
return cli.post(ctx, "/images/create", query, nil, headers)
|
|
}
|