cli

package
v2.1.1 Latest Latest
Warning

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

Go to latest
Published: May 16, 2024 License: Apache-2.0 Imports: 14 Imported by: 16

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultFileNames = []string{"compose.yaml", "compose.yml", "docker-compose.yml", "docker-compose.yaml"}

DefaultFileNames defines the Compose file names for auto-discovery (in order of preference)

View Source
var DefaultOverrideFileNames = []string{"compose.override.yml", "compose.override.yaml", "docker-compose.override.yml", "docker-compose.override.yaml"}

DefaultOverrideFileNames defines the Compose override file names for auto-discovery (in order of preference)

Functions

func ProjectFromOptions

func ProjectFromOptions(ctx context.Context, options *ProjectOptions) (*types.Project, error)

ProjectFromOptions load a compose project based on command line options Deprecated: use ProjectOptions.LoadProject or ProjectOptions.LoadModel

func WithConfigFileEnv

func WithConfigFileEnv(o *ProjectOptions) error

WithConfigFileEnv allow to set compose config file paths by COMPOSE_FILE environment variable

func WithDefaultConfigPath

func WithDefaultConfigPath(o *ProjectOptions) error

WithDefaultConfigPath searches for default config files from working directory

func WithDiscardEnvFile

func WithDiscardEnvFile(o *ProjectOptions) error

WithDiscardEnvFile sets discards the `env_file` section after resolving to the `environment` section

func WithDotEnv

func WithDotEnv(o *ProjectOptions) error

WithDotEnv imports environment variables from .env file

func WithOsEnv

func WithOsEnv(o *ProjectOptions) error

WithOsEnv imports environment variables from OS

func WithoutEnvironmentResolution

func WithoutEnvironmentResolution(o *ProjectOptions) error

WithoutEnvironmentResolution disable environment resolution

Types

type ProjectOptions

type ProjectOptions struct {
	// Name is a valid Compose project name to be used or empty.
	//
	// If empty, the project loader will automatically infer a reasonable
	// project name if possible.
	Name string

	// WorkingDir is a file path to use as the project directory or empty.
	//
	// If empty, the project loader will automatically infer a reasonable
	// working directory if possible.
	WorkingDir string

	// ConfigPaths are file paths to one or more Compose files.
	//
	// These are applied in order by the loader following the override logic
	// as described in the spec.
	//
	// The first entry is required and is the primary Compose file.
	// For convenience, WithConfigFileEnv and WithDefaultConfigPath
	// are provided to populate this in a predictable manner.
	ConfigPaths []string

	// Environment are additional environment variables to make available
	// for interpolation.
	//
	// NOTE: For security, the loader does not automatically expose any
	// process environment variables. For convenience, WithOsEnv can be
	// used if appropriate.
	Environment types.Mapping

	// EnvFiles are file paths to ".env" files with additional environment
	// variable data.
	//
	// These are loaded in-order, so it is possible to override variables or
	// in subsequent files.
	//
	// This field is optional, but any file paths that are included here must
	// exist or an error will be returned during load.
	EnvFiles []string

	// Callbacks to retrieve metadata information during parse defined before
	// creating the project
	Listeners []loader.Listener
	// contains filtered or unexported fields
}

ProjectOptions provides common configuration for loading a project.

func NewProjectOptions

func NewProjectOptions(configs []string, opts ...ProjectOptionsFn) (*ProjectOptions, error)

NewProjectOptions creates ProjectOptions

func (*ProjectOptions) GeConfigFiles

func (o *ProjectOptions) GeConfigFiles() ([]types.ConfigFile, error)

func (*ProjectOptions) GetWorkingDir

func (o *ProjectOptions) GetWorkingDir() (string, error)

func (*ProjectOptions) LoadModel

func (o *ProjectOptions) LoadModel(ctx context.Context) (map[string]any, error)

LoadModel loads compose file according to options and returns a raw (yaml tree) model

func (*ProjectOptions) LoadProject

func (o *ProjectOptions) LoadProject(ctx context.Context) (*types.Project, error)

LoadProject loads compose file according to options and bind to types.Project go structs

func (*ProjectOptions) WithListeners

func (o *ProjectOptions) WithListeners(listeners ...loader.Listener)

Append listener to event

type ProjectOptionsFn

type ProjectOptionsFn func(*ProjectOptions) error

func WithConsistency

func WithConsistency(consistency bool) ProjectOptionsFn

WithConsistency set ProjectOptions to enable/skip consistency

func WithDefaultProfiles

func WithDefaultProfiles(profile ...string) ProjectOptionsFn

WithDefaultProfiles uses the provided profiles (if any), and falls back to profiles specified via the COMPOSE_PROFILES environment variable otherwise.

func WithEnv

func WithEnv(env []string) ProjectOptionsFn

WithEnv defines a key=value set of variables used for compose file interpolation

func WithEnvFile deprecated

func WithEnvFile(file string) ProjectOptionsFn

WithEnvFile sets an alternate env file.

Deprecated: use WithEnvFiles instead.

func WithEnvFiles

func WithEnvFiles(file ...string) ProjectOptionsFn

WithEnvFiles set env file(s) to be loaded to set project environment. defaults to local .env file if no explicit file is selected, until COMPOSE_DISABLE_ENV_FILE is set

func WithExtension

func WithExtension(name string, typ any) ProjectOptionsFn

WithExtension register a know extension `x-*` with the go struct type to decode into

func WithInterpolation

func WithInterpolation(interpolation bool) ProjectOptionsFn

WithInterpolation set ProjectOptions to enable/skip interpolation

func WithLoadOptions

func WithLoadOptions(loadOptions ...func(*loader.Options)) ProjectOptionsFn

WithLoadOptions provides a hook to control how compose files are loaded

func WithName

func WithName(name string) ProjectOptionsFn

WithName defines ProjectOptions' name

func WithNormalization

func WithNormalization(normalization bool) ProjectOptionsFn

WithNormalization set ProjectOptions to enable/skip normalization

func WithProfiles

func WithProfiles(profiles []string) ProjectOptionsFn

WithProfiles sets profiles to be activated

func WithResolvedPaths

func WithResolvedPaths(resolve bool) ProjectOptionsFn

WithResolvedPaths set ProjectOptions to enable paths resolution

func WithResourceLoader

func WithResourceLoader(r loader.ResourceLoader) ProjectOptionsFn

WithResourceLoader register support for ResourceLoader to manage remote resources

func WithWorkingDirectory

func WithWorkingDirectory(wd string) ProjectOptionsFn

WithWorkingDirectory defines ProjectOptions' working directory

Jump to

Keyboard shortcuts

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