project

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileExists

func FileExists(path string) bool

FileExists checks if a file exists

func LoadEnvFile

func LoadEnvFile(filePath string) (map[string]string, error)

LoadEnvFile loads environment variables from a .env.doku file

Types

type AddOptions

type AddOptions struct {
	ProjectPath  string            // Path to project directory
	Name         string            // Project name (optional, defaults to directory name)
	Dockerfile   string            // Path to Dockerfile (optional, defaults to ./Dockerfile)
	Port         int               // Main port to expose
	Ports        []string          // Additional port mappings
	Environment  map[string]string // Environment variables
	Dependencies []string          // Service dependencies (e.g., postgres:16)
	Domain       string            // Custom domain (optional)
	Internal     bool              // Internal only (no Traefik)
	Replace      bool              // Replace existing project if it exists
}

AddOptions contains options for adding a project

type BuildOptions

type BuildOptions struct {
	Name      string            // Project name
	NoCache   bool              // Build without cache
	Pull      bool              // Pull base image before building
	Tag       string            // Custom tag
	BuildArgs map[string]string // Build arguments for ARG directives in Dockerfile (NOT runtime env vars)
}

BuildOptions contains options for building a project

type Builder

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

Builder handles Docker build operations for projects

func NewBuilder

func NewBuilder(dockerClient *docker.Client) *Builder

NewBuilder creates a new Docker builder

func (*Builder) Build

func (b *Builder) Build(opts DockerBuildOptions) (string, error)

Build builds a Docker image from a Dockerfile Uses docker buildx for BuildKit support with SSH forwarding

func (*Builder) GetImageInfo

func (b *Builder) GetImageInfo(imageTag string) (types.ImageInspect, error)

GetImageInfo retrieves information about a Docker image

func (*Builder) TagImage

func (b *Builder) TagImage(imageID, tag string) error

TagImage adds a tag to an image

func (*Builder) ValidateDockerfile

func (b *Builder) ValidateDockerfile(dockerfilePath string) error

ValidateDockerfile checks if a Dockerfile exists and is readable

type ContainerRunOptions

type ContainerRunOptions struct {
	Project *types.Project
	Image   string
	Detach  bool
}

ContainerRunOptions contains options for running a container

type DockerBuildOptions

type DockerBuildOptions struct {
	ContextPath    string             // Project directory path
	DockerfilePath string             // Path to Dockerfile
	Tags           []string           // Image tags
	NoCache        bool               // Build without cache
	Pull           bool               // Pull base image
	BuildArgs      map[string]*string // Build arguments
}

DockerBuildOptions contains options for building a Docker image

type Manager

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

Manager handles project lifecycle operations

func NewManager

func NewManager(dockerClient *docker.Client, cfgMgr *config.Manager) (*Manager, error)

NewManager creates a new project manager

func (*Manager) Add

func (m *Manager) Add(opts AddOptions) (*types.Project, error)

Add adds a new project to Doku

func (*Manager) Build

func (m *Manager) Build(opts BuildOptions) error

Build builds a project's Docker image

func (*Manager) Get

func (m *Manager) Get(name string) (*types.Project, error)

Get retrieves a project by name

func (*Manager) GetStatus

func (m *Manager) GetStatus(name string) (types.ServiceStatus, error)

GetStatus returns the current status of a project

func (*Manager) ImageExists

func (m *Manager) ImageExists(imageTag string) bool

ImageExists checks if a Docker image exists (public method)

func (*Manager) List

func (m *Manager) List() ([]*types.Project, error)

List returns all projects

func (*Manager) Remove

func (m *Manager) Remove(name string, removeImage bool) error

Remove removes a project

func (*Manager) Restart

func (m *Manager) Restart(name string) error

Restart restarts a project

func (*Manager) Run

func (m *Manager) Run(opts RunOptions) error

Run runs a project

func (*Manager) Start

func (m *Manager) Start(name string) error

Start starts a stopped project

func (*Manager) Stop

func (m *Manager) Stop(name string) error

Stop stops a running project

type RunOptions

type RunOptions struct {
	Name        string // Project name
	Build       bool   // Build before running
	InstallDeps bool   // Auto-install dependencies
	Detach      bool   // Run in background
}

RunOptions contains options for running a project

type Runner

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

Runner handles running project containers

func NewRunner

func NewRunner(dockerClient *docker.Client, cfgMgr *config.Manager) *Runner

NewRunner creates a new container runner

func (*Runner) InstallDependencies

func (r *Runner) InstallDependencies(project *types.Project) error

InstallDependencies installs missing project dependencies

func (*Runner) PromptInstallDependencies

func (r *Runner) PromptInstallDependencies(project *types.Project) (bool, error)

PromptInstallDependencies prompts user to install missing dependencies

func (*Runner) Run

func (r *Runner) Run(opts ContainerRunOptions) error

Run runs a project container

Jump to

Keyboard shortcuts

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