config.go 873 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package docker
  2. import (
  3. "context"
  4. "github.com/docker/docker/client"
  5. api "github.com/porter-dev/porter/api/client"
  6. )
  7. const label = "CreatedByPorterCLI"
  8. // NewAgentFromEnv creates a new Docker agent using the environment variables set
  9. // on the host
  10. func NewAgentFromEnv() (*Agent, error) {
  11. ctx := context.Background()
  12. cli, err := client.NewClientWithOpts(
  13. client.FromEnv,
  14. client.WithAPIVersionNegotiation(),
  15. )
  16. if err != nil {
  17. return nil, err
  18. }
  19. return &Agent{
  20. Client: cli,
  21. ctx: ctx,
  22. label: label,
  23. }, nil
  24. }
  25. func NewAgentWithAuthGetter(client *api.Client, projID uint) (*Agent, error) {
  26. agent, err := NewAgentFromEnv()
  27. if err != nil {
  28. return nil, err
  29. }
  30. cache := NewFileCredentialsCache()
  31. authGetter := &AuthGetter{
  32. Client: client,
  33. Cache: cache,
  34. ProjectID: projID,
  35. }
  36. agent.authGetter = authGetter
  37. return agent, nil
  38. }