devcontainer

package
v0.2.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2024 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ImageFromDockerfile

func ImageFromDockerfile(dockerfileContent string) (name.Reference, error)

ImageFromDockerfile inspects the contents of a provided Dockerfile and returns the image that will be used to run the container.

func SubstituteVars added in v0.2.7

func SubstituteVars(s string, workspaceFolder string) string

func UserFromDockerfile

func UserFromDockerfile(dockerfileContent string) string

UserFromDockerfile inspects the contents of a provided Dockerfile and returns the user that will be used to run the container.

func UserFromImage

func UserFromImage(ref name.Reference) (string, error)

UserFromImage inspects the remote reference and returns the user that will be used to run the container.

Types

type BuildSpec

type BuildSpec struct {
	Dockerfile string            `json:"dockerfile"`
	Context    string            `json:"context"`
	Args       map[string]string `json:"args"`
	Target     string            `json:"target"`
	CacheFrom  string            `json:"cache_from"`
}

type Compiled

type Compiled struct {
	DockerfilePath    string
	DockerfileContent string
	BuildContext      string
	BuildArgs         []string

	User         string
	ContainerEnv map[string]string
	RemoteEnv    map[string]string
}

Compiled is the result of compiling a devcontainer.json file.

type LifecycleScript added in v0.2.4

type LifecycleScript struct {
	// contains filtered or unexported fields
}

func (*LifecycleScript) Execute added in v0.2.4

func (s *LifecycleScript) Execute(ctx context.Context, uid, gid int) error

func (*LifecycleScript) IsEmpty added in v0.2.4

func (s *LifecycleScript) IsEmpty() bool

func (*LifecycleScript) ScriptLines added in v0.2.4

func (s *LifecycleScript) ScriptLines() string

ScriptLines returns shell syntax for executing the commands in the LifecycleScript.

TODO: Technically the commands could be executed in parallel, but that would add a bit of complexity to do portably.

func (*LifecycleScript) UnmarshalJSON added in v0.2.4

func (s *LifecycleScript) UnmarshalJSON(data []byte) error

type LifecycleScripts added in v0.2.4

type LifecycleScripts struct {
	OnCreateCommand      LifecycleScript `json:"onCreateCommand"`
	UpdateContentCommand LifecycleScript `json:"updateContentCommand"`
	PostCreateCommand    LifecycleScript `json:"postCreateCommand"`
	PostStartCommand     LifecycleScript `json:"postStartCommand"`
}

type Spec

type Spec struct {
	Image         string            `json:"image"`
	Build         BuildSpec         `json:"build"`
	RemoteUser    string            `json:"remoteUser"`
	ContainerUser string            `json:"containerUser"`
	ContainerEnv  map[string]string `json:"containerEnv"`
	RemoteEnv     map[string]string `json:"remoteEnv"`
	// Features is a map of feature names to feature configurations.
	Features map[string]any `json:"features"`
	LifecycleScripts

	// Deprecated but still frequently used...
	Dockerfile string `json:"dockerFile"`
	Context    string `json:"context"`
}

func Parse

func Parse(content []byte) (*Spec, error)

Parse parses a devcontainer.json file.

func (*Spec) Compile

func (s *Spec) Compile(fs billy.Filesystem, devcontainerDir, scratchDir, fallbackDockerfile, workspaceFolder string) (*Compiled, error)

Compile returns the build parameters for the workspace. devcontainerDir is the path to the directory where the devcontainer.json file is located. scratchDir is the path to the directory where the Dockerfile will be written to if one doesn't exist.

func (Spec) HasDockerfile added in v0.1.5

func (s Spec) HasDockerfile() bool

HasDockerfile returns true if the devcontainer.json specifies the path to a Dockerfile.

func (Spec) HasImage added in v0.1.5

func (s Spec) HasImage() bool

HasImage returns true if the devcontainer.json specifies an image.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL