12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package executor
- import (
- "context"
- "io"
- "net"
- "github.com/moby/buildkit/snapshot"
- "github.com/moby/buildkit/solver/pb"
- )
- type Meta struct {
- Args []string
- Env []string
- User string
- Cwd string
- Hostname string
- Tty bool
- ReadonlyRootFS bool
- ExtraHosts []HostIP
- NetMode pb.NetMode
- SecurityMode pb.SecurityMode
- }
- type Mountable interface {
- Mount(ctx context.Context, readonly bool) (snapshot.Mountable, error)
- }
- type Mount struct {
- Src Mountable
- Selector string
- Dest string
- Readonly bool
- }
- type WinSize struct {
- Rows uint32
- Cols uint32
- }
- type ProcessInfo struct {
- Meta Meta
- Stdin io.ReadCloser
- Stdout, Stderr io.WriteCloser
- Resize <-chan WinSize
- }
- type Executor interface {
- // Run will start a container for the given process with rootfs, mounts.
- // `id` is an optional name for the container so it can be referenced later via Exec.
- // `started` is an optional channel that will be closed when the container setup completes and has started running.
- Run(ctx context.Context, id string, rootfs Mount, mounts []Mount, process ProcessInfo, started chan<- struct{}) error
- // Exec will start a process in container matching `id`. An error will be returned
- // if the container failed to start (via Run) or has exited before Exec is called.
- Exec(ctx context.Context, id string, process ProcessInfo) error
- }
- type HostIP struct {
- Host string
- IP net.IP
- }
|