package oci

import "github.com/moby/buildkit/executor/oci"

Index

Functions

func GenerateSpec

func GenerateSpec(ctx context.Context, meta executor.Meta, mounts []executor.Mount, id, resolvConf, hostsFile string, namespace network.Namespace, processMode ProcessMode, idmap *idtools.IdentityMapping, opts ...oci.SpecOpts) (*specs.Spec, func(), error)

GenerateSpec generates spec using containerd functionality. opts are ignored for s.Process, s.Hostname, and s.Mounts .

func GetHostsFile

func GetHostsFile(ctx context.Context, stateDir string, extraHosts []executor.HostIP, idmap *idtools.IdentityMapping) (string, func(), error)

func GetMounts

func GetMounts(ctx context.Context, mountOpts ...MountOpts) ([]specs.Mount, error)

GetMounts returns default required for buildkit https://github.com/moby/buildkit/issues/429

func GetResolvConf

func GetResolvConf(ctx context.Context, stateDir string, idmap *idtools.IdentityMapping, dns *DNSConfig) (string, error)

func GetUser

func GetUser(ctx context.Context, root, username string) (uint32, uint32, []uint32, error)

func ParseUIDGID

func ParseUIDGID(str string) (uid uint32, gid uint32, err error)

ParseUIDGID takes the fast path to parse UID and GID if and only if they are both provided

func WithUIDGID

func WithUIDGID(uid, gid uint32, sgids []uint32) containerdoci.SpecOpts

WithUIDGID allows the UID and GID for the Process to be set FIXME: This is a temporeray fix for the missing supplementary GIDs from containerd once the PR in containerd is merged we should remove this function.

Types

type DNSConfig

type DNSConfig struct {
	Nameservers   []string
	Options       []string
	SearchDomains []string
}

type MountOpts

type MountOpts func([]specs.Mount) ([]specs.Mount, error)

MountOpts sets oci spec specific info for mount points

type ProcessMode

type ProcessMode int

ProcMode configures PID namespaces

const (
	// ProcessSandbox unshares pidns and mount procfs.
	ProcessSandbox ProcessMode = iota
	// NoProcessSandbox uses host pidns and bind-mount procfs.
	// Note that NoProcessSandbox allows build containers to kill (and potentially ptrace) an arbitrary process in the BuildKit host namespace.
	// NoProcessSandbox should be enabled only when the BuildKit is running in a container as an unprivileged user.
	NoProcessSandbox
)

Source Files

hosts.go mounts.go resolvconf.go spec.go spec_unix.go user.go

Version
v0.7.1
Published
Apr 16, 2020
Platform
js/wasm
Imports
32 packages
Last checked
8 seconds ago

Tools for package owners.