Skip to content

Docker Compose

SnakeFlow provides Docker Compose management from the sidebar and main menu. Supports docker compose, docker-compose, and podman compose.

Installing Docker Desktop

  1. Download Docker Desktop for Windows
  2. Run the installer (requires WSL2 or Hyper-V)
  3. Start Docker Desktop from the Start menu
  4. Verify in terminal: docker --version and docker compose version

Pulling Docker Images

Some Quality Hub checks (Bearer SAST) use Docker images. Pull them in advance:

Terminal window
# Bearer SAST scanner (Linux/macOS)
docker pull bearer/bearer:latest-amd64
# Verify
docker images | grep bearer

Configuration

"devManager.docker.composeCommand": "docker compose",
"devManager.project.composePath": "",
"devManager.project.containerActions": [
{ "label": "Up", "command": "docker compose up -d" },
{ "label": "Down", "command": "docker compose down" },
{ "label": "Restart", "command": "docker compose restart" },
{ "label": "Status", "command": "docker compose ps" },
{ "label": "Logs", "command": "docker compose logs -f --tail 100" },
{ "label": "Pull Images", "command": "docker compose pull" },
{ "label": "Build Images", "command": "docker compose build" },
{ "label": "Down + Volumes", "command": "docker compose down -v", "confirm": true }
]

Settings

SettingDefaultDescription
devManager.docker.composeCommand"docker compose"CLI to use for compose operations
devManager.project.composePath""Path to compose file (empty = auto-detect)
devManager.project.containerActionsautoCustom action menu

Auto-Detection

When composePath is empty (""), the extension searches for:

  • docker-compose.yaml
  • docker-compose.yml
  • compose.yaml
  • compose.yml

Checked in: project root, docker/, infra/ directories.

Custom Compose File

"devManager.project.composePath": "infra/docker-compose.dev.yaml"

Podman

"devManager.docker.composeCommand": "podman compose"

Custom Infrastructure Commands

Container actions are not limited to Docker Compose. You can run any infrastructure command:

"devManager.project.containerActions": [
{ "label": "Start DB", "command": "docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=secret postgres:16" },
{ "label": "Stop DB", "command": "docker stop postgres && docker rm postgres" },
{ "label": "Redis", "command": "docker run -d --name redis -p 6379:6379 redis:alpine" },
{ "label": "Terraform up", "command": "terraform apply -auto-approve", "cwd": "infra/terraform" }
]

Run Compose from the UI

  1. Start Docker (or Podman) and ensure a compose file is found — see Auto-detection or set composePath.
  2. SnakeFlow sidebar (Activity Bar): expand your project. When Compose is configured, container actions from devManager.project.containerActions appear as tree items (SnakeFlow auto-seeds defaults on first detection, or uses your JSON above).
  3. Click an action (Up, Down, Logs, …) — the command runs in a named terminal titled like Containers [project] with the correct working directory.
  4. Command Palette (Ctrl+Shift+P / Cmd+Shift+P): run SnakeFlow: Containers Menu for the same actions as a quick pick.
  5. Status bar: when the Docker / containers status item is visible, it can open the same Containers menu (same command as the palette entry).
  • Dev servers — long-running app commands and port status
  • CI & GitHub Actions (act) — run workflows locally with the same engine Compose often uses in CI
  • CLI install — install docker, Bearer, Trivy, and other CLIs Quality Hub may call
  • All settingsdevManager.docker.* and devManager.project.composePath