Documentation
¶
Index ¶
- Variables
- func ProjectFromOptions(ctx context.Context, options *ProjectOptions) (*types.Project, error)
- func WithConfigFileEnv(o *ProjectOptions) error
- func WithDefaultConfigPath(o *ProjectOptions) error
- func WithDiscardEnvFile(o *ProjectOptions) error
- func WithDotEnv(o *ProjectOptions) error
- func WithOsEnv(o *ProjectOptions) error
- func WithoutEnvironmentResolution(o *ProjectOptions) error
- func WithoutUnnecessaryResources(o *ProjectOptions) error
- type ProjectOptions
- func (o *ProjectOptions) GetWorkingDir() (string, error)
- func (o *ProjectOptions) LoadModel(ctx context.Context) (map[string]any, error)
- func (o *ProjectOptions) LoadProject(ctx context.Context) (*types.Project, error)
- func (o *ProjectOptions) ReadConfigFiles(ctx context.Context, workingDir string, options *ProjectOptions) (*types.ConfigDetails, error)
- func (o *ProjectOptions) WithListeners(listeners ...loader.Listener)
- type ProjectOptionsFn
- func WithConsistency(consistency bool) ProjectOptionsFn
- func WithDefaultProfiles(profiles ...string) ProjectOptionsFn
- func WithEnv(env []string) ProjectOptionsFn
- func WithEnvFile(file string) ProjectOptionsFndeprecated
- func WithEnvFiles(file ...string) ProjectOptionsFn
- func WithExtension(name string, typ any) ProjectOptionsFn
- func WithInterpolation(interpolation bool) ProjectOptionsFn
- func WithLoadOptions(loadOptions ...func(*loader.Options)) ProjectOptionsFn
- func WithName(name string) ProjectOptionsFn
- func WithNormalization(normalization bool) ProjectOptionsFn
- func WithProfiles(profiles []string) ProjectOptionsFn
- func WithResolvedPaths(resolve bool) ProjectOptionsFn
- func WithResourceLoader(r loader.ResourceLoader) ProjectOptionsFn
- func WithSelectedServices(services ...string) ProjectOptionsFn
- func WithWorkingDirectory(wd string) ProjectOptionsFn
Constants ¶
This section is empty.
Variables ¶
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)
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 ¶
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
func WithoutUnnecessaryResources ¶ added in v2.12.0
func WithoutUnnecessaryResources(o *ProjectOptions) error
WithoutUnnecessaryResources drops networks/volumes/secrets/configs/models that are not referenced by services remaining after selection.
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
// ResourceLoaders manages support for remote resources
ResourceLoaders []loader.ResourceLoader
// 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) GetWorkingDir ¶
func (o *ProjectOptions) GetWorkingDir() (string, error)
func (*ProjectOptions) LoadModel ¶
LoadModel loads compose file according to options and returns a raw (yaml tree) model
func (*ProjectOptions) LoadProject ¶
LoadProject loads compose file according to options and bind to types.Project go structs
func (*ProjectOptions) ReadConfigFiles ¶ added in v2.4.0
func (o *ProjectOptions) ReadConfigFiles(ctx context.Context, workingDir string, options *ProjectOptions) (*types.ConfigDetails, error)
ReadConfigFiles reads ConfigFiles and populates the content field
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(profiles ...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 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 WithSelectedServices ¶ added in v2.12.0
func WithSelectedServices(services ...string) ProjectOptionsFn
WithSelectedServices restricts the loaded project to the given services and their dependencies. An empty list means "all services". When set, services not in the list are dropped from the project before environment resolution, so their `env_file` / `label_file` entries are not loaded from disk.
func WithWorkingDirectory ¶
func WithWorkingDirectory(wd string) ProjectOptionsFn
WithWorkingDirectory defines ProjectOptions' working directory