mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	godep restore pushd $GOPATH/src/github.com/appc/spec git co master popd go get go4.org/errorutil rm -rf Godeps godep save ./... git add vendor git add -f $(git ls-files --other vendor/) git co -- Godeps/LICENSES Godeps/.license_file_state Godeps/OWNERS
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package client
 | |
| 
 | |
| import (
 | |
| 	"encoding/json"
 | |
| 	"net/url"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/docker/engine-api/types"
 | |
| 	"github.com/docker/engine-api/types/container"
 | |
| 	"github.com/docker/engine-api/types/network"
 | |
| 	"golang.org/x/net/context"
 | |
| )
 | |
| 
 | |
| type configWrapper struct {
 | |
| 	*container.Config
 | |
| 	HostConfig       *container.HostConfig
 | |
| 	NetworkingConfig *network.NetworkingConfig
 | |
| }
 | |
| 
 | |
| // ContainerCreate creates a new container based in the given configuration.
 | |
| // It can be associated with a name, but it's not mandatory.
 | |
| func (cli *Client) ContainerCreate(ctx context.Context, config *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig, containerName string) (types.ContainerCreateResponse, error) {
 | |
| 	var response types.ContainerCreateResponse
 | |
| 	query := url.Values{}
 | |
| 	if containerName != "" {
 | |
| 		query.Set("name", containerName)
 | |
| 	}
 | |
| 
 | |
| 	body := configWrapper{
 | |
| 		Config:           config,
 | |
| 		HostConfig:       hostConfig,
 | |
| 		NetworkingConfig: networkingConfig,
 | |
| 	}
 | |
| 
 | |
| 	serverResp, err := cli.post(ctx, "/containers/create", query, body, nil)
 | |
| 	if err != nil {
 | |
| 		if serverResp != nil && serverResp.statusCode == 404 && strings.Contains(err.Error(), "No such image") {
 | |
| 			return response, imageNotFoundError{config.Image}
 | |
| 		}
 | |
| 		return response, err
 | |
| 	}
 | |
| 
 | |
| 	err = json.NewDecoder(serverResp.body).Decode(&response)
 | |
| 	ensureReaderClosed(serverResp)
 | |
| 	return response, err
 | |
| }
 |