Documentation
¶
Index ¶
- Constants
- func CopyFile(src, dst string) error
- func IsPodman(ctx context.Context, logger *slog.Logger) bool
- func RedactSecrets(s string, env map[string]string) string
- type Config
- type Manager
- func (dm *Manager) Command(ctx context.Context, logger *slog.Logger, env map[string]string, ...) *exec.Cmd
- func (dm *Manager) Config() Config
- func (dm *Manager) ContainerExists(ctx context.Context, logger *slog.Logger) (bool, error)
- func (dm *Manager) ContainerRunning(ctx context.Context, logger *slog.Logger) (bool, error)
- func (dm *Manager) CopyFrom(ctx context.Context, logger *slog.Logger, src, dst string) error
- func (dm *Manager) CopyTo(ctx context.Context, logger *slog.Logger, src, dst string) error
- func (dm *Manager) EnsureContainer(ctx context.Context, logger *slog.Logger, recreate bool) error
- func (dm *Manager) ExecBash(ctx context.Context, logger *slog.Logger, bashCmd string) error
- func (dm *Manager) ExecInteractive(ctx context.Context, logger *slog.Logger, env map[string]string, ...) error
- func (dm *Manager) RemoveContainer(ctx context.Context, logger *slog.Logger) error
- func (dm *Manager) StopContainer(ctx context.Context, logger *slog.Logger) error
Constants ¶
const ( // ContainerWorkingDir is the default working directory inside containers. ContainerWorkingDir = "/workspace" // DirPermission is the default permission for directories. DirPermission os.FileMode = 0o775 // FilePermission is the default permission for files. FilePermission os.FileMode = 0o644 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
Name string
Image string
WorkingDir string
// Dockerfile is the file name under docker/ used to build the image.
// If empty, "Dockerfile" is used.
Dockerfile string
}
Config holds Docker container configuration.
func DefaultAlpineContainer ¶ added in v0.5.2
func DefaultAlpineContainer() Config
DefaultAlpineContainer returns the default Alpine (musl) Linux container configuration. It is used when registry.yaml contains packages with `key: libc` variants to verify both musl and gnu libc paths.
func DefaultLinuxContainer ¶
func DefaultLinuxContainer() Config
DefaultLinuxContainer returns the default Linux container configuration.
func DefaultWindowsContainer ¶
func DefaultWindowsContainer() Config
DefaultWindowsContainer returns the default Windows container configuration.
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages Docker container operations.
func NewManager ¶
NewManager creates a new Manager with the given configuration.
func (*Manager) Command ¶
func (dm *Manager) Command(ctx context.Context, logger *slog.Logger, env map[string]string, command ...string) *exec.Cmd
Command executes a command in the container.
func (*Manager) ContainerExists ¶
ContainerExists checks if the container exists.
func (*Manager) ContainerRunning ¶
ContainerRunning checks if the container is running.
func (*Manager) EnsureContainer ¶
EnsureContainer ensures the container is running. If recreate is true, it will stop and remove the existing container first.
func (*Manager) ExecInteractive ¶
func (dm *Manager) ExecInteractive(ctx context.Context, logger *slog.Logger, env map[string]string, command ...string) error
ExecInteractive executes an interactive command in the container with stdin attached.
func (*Manager) RemoveContainer ¶
RemoveContainer stops and removes the container.