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" }
]