github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/pkg/bindings/containers/create.go (about) 1 package containers 2 3 import ( 4 "context" 5 "net/http" 6 "strings" 7 8 "github.com/hanks177/podman/v4/pkg/bindings" 9 "github.com/hanks177/podman/v4/pkg/domain/entities" 10 "github.com/hanks177/podman/v4/pkg/specgen" 11 jsoniter "github.com/json-iterator/go" 12 ) 13 14 func CreateWithSpec(ctx context.Context, s *specgen.SpecGenerator, options *CreateOptions) (entities.ContainerCreateResponse, error) { 15 var ccr entities.ContainerCreateResponse 16 if options == nil { 17 options = new(CreateOptions) 18 } 19 _ = options 20 conn, err := bindings.GetClient(ctx) 21 if err != nil { 22 return ccr, err 23 } 24 specgenString, err := jsoniter.MarshalToString(s) 25 if err != nil { 26 return ccr, err 27 } 28 stringReader := strings.NewReader(specgenString) 29 response, err := conn.DoRequest(ctx, stringReader, http.MethodPost, "/containers/create", nil, nil) 30 if err != nil { 31 return ccr, err 32 } 33 defer response.Body.Close() 34 35 return ccr, response.Process(&ccr) 36 }