service_create.go 779 B

123456789101112131415161718192021222324252627282930
  1. package client
  2. import (
  3. "encoding/json"
  4. "github.com/docker/docker/api/types"
  5. "github.com/docker/docker/api/types/swarm"
  6. "golang.org/x/net/context"
  7. )
  8. // ServiceCreate creates a new Service.
  9. func (cli *Client) ServiceCreate(ctx context.Context, service swarm.ServiceSpec, options types.ServiceCreateOptions) (types.ServiceCreateResponse, error) {
  10. var headers map[string][]string
  11. if options.EncodedRegistryAuth != "" {
  12. headers = map[string][]string{
  13. "X-Registry-Auth": {options.EncodedRegistryAuth},
  14. }
  15. }
  16. var response types.ServiceCreateResponse
  17. resp, err := cli.post(ctx, "/services/create", nil, service, headers)
  18. if err != nil {
  19. return response, err
  20. }
  21. err = json.NewDecoder(resp.body).Decode(&response)
  22. ensureReaderClosed(resp)
  23. return response, err
  24. }