config.go 919 B

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