Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const ICON_MAP: Record<string, string> = {
docker: "./icons/providers/docker.svg",
podman: "./icons/providers/podman.svg",
apple: "./icons/providers/apple.svg",
colima: "./icons/providers/colima.png",
aws: "./icons/providers/aws.svg",
amazon: "./icons/providers/aws.svg",
gcloud: "./icons/providers/gcp.svg",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const PRESETS = [
{ name: "docker", description: "Local Docker containers" },
{ name: "podman", description: "Local Podman containers" },
{ name: "apple", description: "Apple containers (macOS 26+, Apple silicon)" },
{ name: "colima", description: "Colima (Docker/containerd on macOS via Lima)" },
{ name: "ssh", description: "Remote SSH machines" },
{ name: "kubernetes", description: "Kubernetes clusters" },
{ name: "aws", description: "Amazon Web Services" },
Expand Down
44 changes: 44 additions & 0 deletions providers/colima/provider.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: colima
version: v1.0.0
icon: https://dl.devsy.sh/assets/colima.png
home: https://github.com/devsy-org/devsy
description: |-
Devsy on Colima (Docker/containerd on macOS via Lima)
optionGroups:
- options:
- COLIMA_PATH
- COLIMA_PROFILE
- COLIMA_HOST
- COLIMA_ELEVATION
- INACTIVITY_TIMEOUT
name: "Advanced Options"
options:
INACTIVITY_TIMEOUT:
description: "If defined, will automatically stop the container after the inactivity period. Examples: 10m, 1h"
COLIMA_PATH:
description: The path where to find the docker binary Colima exposes.
default: docker
COLIMA_PROFILE:
description: The Colima profile (instance) to target. Corresponds to `colima start --profile`.
default: default
COLIMA_HOST:
global: true
description: The Colima Docker socket to connect to. Defaults to the socket for the selected profile.
command: |-
profile="${COLIMA_PROFILE:-default}"
echo "unix://${HOME}/.colima/${profile}/docker.sock"
COLIMA_ELEVATION:
description: "Optionally run docker commands through a privilege-elevation helper. One of: pkexec, sudo, doas, or none. Colima runs rootless by default; leave as none."
default: none
agent:
containerInactivityTimeout: ${INACTIVITY_TIMEOUT}
local: true
docker:
path: ${COLIMA_PATH}
elevation: ${COLIMA_ELEVATION}
install: false
env:
DOCKER_HOST: ${COLIMA_HOST}
exec:
command: |-
"${DEVSY}" internal sh -c "${COMMAND}"
4 changes: 4 additions & 0 deletions providers/providers.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ import (
//go:embed apple/provider.yaml
var AppleProvider string

//go:embed colima/provider.yaml
var ColimaProvider string

//go:embed docker/provider.yaml
var DockerProvider string

Expand All @@ -23,6 +26,7 @@ var ProProvider string
func GetBuiltInProviders() map[string]string {
return map[string]string{
"apple": AppleProvider,
"colima": ColimaProvider,
"docker": DockerProvider,
"kubernetes": KubernetesProvider,
"podman": PodmanProvider,
Expand Down
13 changes: 13 additions & 0 deletions providers/providers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,16 @@ func TestAppleProviderUsesAppleDriver(t *testing.T) {
t.Errorf("apple provider driver = %q, want %q", cfg.Agent.Driver, provider.AppleDriver)
}
}

func TestColimaProviderUsesDockerDriver(t *testing.T) {
cfg, err := provider.ParseProvider(strings.NewReader(providers.ColimaProvider))
if err != nil {
t.Fatalf("parse colima provider: %v", err)
}
if cfg.Agent.Driver != "" && cfg.Agent.Driver != provider.DockerDriver {
t.Errorf("colima provider driver = %q, want docker", cfg.Agent.Driver)
}
if _, ok := cfg.Agent.Docker.Env["DOCKER_HOST"]; !ok {
t.Errorf("colima provider missing DOCKER_HOST env for docker driver")
}
}
Loading