41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/moby/buildkit/solver/pb"
|
|
digest "github.com/opencontainers/go-digest"
|
|
)
|
|
|
|
// TODO: make this take same options as LLBBridge. Add Return()
|
|
type Client interface {
|
|
Solve(ctx context.Context, req SolveRequest, exporterAttr map[string][]byte, final bool) (Reference, error)
|
|
ResolveImageConfig(ctx context.Context, ref string) (digest.Digest, []byte, error)
|
|
Opts() map[string]string
|
|
SessionID() string
|
|
}
|
|
|
|
type Reference interface {
|
|
ReadFile(ctx context.Context, req ReadRequest) ([]byte, error)
|
|
// StatFile(ctx context.Context, req StatRequest) (*StatResponse, error)
|
|
// ReadDir(ctx context.Context, req ReadDirRequest) ([]*StatResponse, error)
|
|
}
|
|
|
|
type ReadRequest struct {
|
|
Filename string
|
|
Range *FileRange
|
|
}
|
|
|
|
type FileRange struct {
|
|
Offset int
|
|
Length int
|
|
}
|
|
|
|
// SolveRequest is same as frontend.SolveRequest but avoiding dependency
|
|
type SolveRequest struct {
|
|
Definition *pb.Definition
|
|
Frontend string
|
|
FrontendOpt map[string]string
|
|
ImportCacheRefs []string
|
|
}
|