compose

package
v0.25.0 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2025 License: MIT Imports: 17 Imported by: 0

Documentation

Overview

Package compose provides Docker Compose project processing functionality

Package compose provides Docker Compose project processing functionality

Package compose provides Docker Compose file parsing and handling

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindEnvFiles added in v0.21.0

func FindEnvFiles(serviceName, workingDir string) []string

FindEnvFiles discovers environment files for a service in a working directory.

func IsExternal added in v0.21.0

func IsExternal(external interface{}) bool

IsExternal checks if a resource configuration indicates it's externally managed.

func ParseComposeFile

func ParseComposeFile(path string) (*types.Project, error)

ParseComposeFile parses a Docker Compose file at the specified path.

func ParseComposeFileWithLogger added in v0.21.0

func ParseComposeFileWithLogger(path string, logger log.Logger) (*types.Project, error)

ParseComposeFileWithLogger parses a Docker Compose file at the specified path with a provided logger.

func Prefix added in v0.21.0

func Prefix(projectName, resourceName string) string

Prefix creates a prefixed resource name using project name and resource name. Always prefixes, matching Docker Compose behavior. Use `external: true` or `name:` field in compose.yaml to override auto-generated names.

func ReadProjects

func ReadProjects(path string) ([]*types.Project, error)

ReadProjects reads all Docker Compose projects from a directory path.

func ReadProjectsWithLogger added in v0.21.0

func ReadProjectsWithLogger(path string, logger log.Logger) ([]*types.Project, error)

ReadProjectsWithLogger reads all Docker Compose projects from a directory path with a provided logger.

func ValidateProjectName added in v0.25.0

func ValidateProjectName(name string) error

ValidateProjectName validates that a project name follows Docker Compose naming requirements. Project names must:

  • Start with a lowercase letter or digit
  • Contain only lowercase letters, digits, dashes, and underscores
  • Not be empty

func ValidateServiceName added in v0.25.0

func ValidateServiceName(name string) error

ValidateServiceName validates that a service name follows Docker Compose naming requirements. Service names must:

  • Start with an alphanumeric character (upper or lowercase)
  • Contain only alphanumeric characters, underscores, periods, and dashes
  • Not be empty

Types

type Converter added in v0.25.0

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

Converter converts Docker Compose projects to service.Spec models.

func NewConverter added in v0.25.0

func NewConverter(workingDir string) *Converter

NewConverter creates a new Converter.

func (*Converter) ConvertProject added in v0.25.0

func (c *Converter) ConvertProject(project *types.Project) ([]service.Spec, error)

ConvertProject converts a Docker Compose project to a list of service specs. It normalizes multi-container setups into multiple Spec instances, handling services, volumes, networks, and build configurations.

func (*Converter) ExtractExternalDependencies added in v0.25.0

func (c *Converter) ExtractExternalDependencies(composeService types.ServiceConfig) ([]service.ExternalDependency, error)

ExtractExternalDependencies parses x-quad-ops-depends-on extension to extract cross-project dependencies. It validates project and service names according to Docker Compose specification. Returns nil if the extension is not present.

type SpecProcessor added in v0.22.0

type SpecProcessor struct{}

SpecProcessor processes Docker Compose projects into service specs.

func NewSpecProcessor added in v0.22.0

func NewSpecProcessor() *SpecProcessor

NewSpecProcessor creates a new SpecProcessor.

func (*SpecProcessor) Process added in v0.22.0

func (p *SpecProcessor) Process(_ context.Context, project *types.Project) ([]service.Spec, error)

Process converts a Docker Compose project to service specs. Uses project.WorkingDir for env file discovery.

Jump to

Keyboard shortcuts

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