client.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package client
  2. import (
  3. "context"
  4. "github.com/moby/buildkit/solver/pb"
  5. "github.com/moby/buildkit/util/apicaps"
  6. digest "github.com/opencontainers/go-digest"
  7. specs "github.com/opencontainers/image-spec/specs-go/v1"
  8. )
  9. type Client interface {
  10. Solve(ctx context.Context, req SolveRequest) (*Result, error)
  11. ResolveImageConfig(ctx context.Context, ref string, opt ResolveImageConfigOpt) (digest.Digest, []byte, error)
  12. BuildOpts() BuildOpts
  13. }
  14. type Reference interface {
  15. ReadFile(ctx context.Context, req ReadRequest) ([]byte, error)
  16. // StatFile(ctx context.Context, req StatRequest) (*StatResponse, error)
  17. // ReadDir(ctx context.Context, req ReadDirRequest) ([]*StatResponse, error)
  18. }
  19. type ReadRequest struct {
  20. Filename string
  21. Range *FileRange
  22. }
  23. type FileRange struct {
  24. Offset int
  25. Length int
  26. }
  27. // SolveRequest is same as frontend.SolveRequest but avoiding dependency
  28. type SolveRequest struct {
  29. Definition *pb.Definition
  30. Frontend string
  31. FrontendOpt map[string]string
  32. ImportCacheRefs []string
  33. }
  34. type WorkerInfo struct {
  35. ID string
  36. Labels map[string]string
  37. Platforms []specs.Platform
  38. }
  39. type BuildOpts struct {
  40. Opts map[string]string
  41. SessionID string
  42. Workers []WorkerInfo
  43. Product string
  44. LLBCaps apicaps.CapSet
  45. Caps apicaps.CapSet
  46. }
  47. type ResolveImageConfigOpt struct {
  48. Platform *specs.Platform
  49. ResolveMode string
  50. LogName string
  51. }