Tear down DevLake resources — stops Docker containers (local) or deletes Azure resources.
gh devlake cleanup [flags]Auto-detects deployment type from state files in the current directory.
| Flag | Default | Description |
|---|---|---|
--local |
false |
Force local cleanup mode (Docker Compose down) |
--azure |
false |
Force Azure cleanup mode (delete resource group) |
--force |
false |
Skip confirmation prompt |
--keep-resource-group |
false |
Delete Azure resources but keep the resource group |
--resource-group |
(from state file) | Override Azure resource group name |
--state-file |
(auto-detected) | Path to state file |
Without --local or --azure, the command checks:
--state-filepath (if provided).devlake-azure.json→ Azure mode.devlake-local.json→ Local mode
If neither file is found, cleanup fails with an error — use --azure or --local to force the mode.
Stops and removes Docker Compose containers. Equivalent to docker compose down from the deployment directory.
gh devlake cleanup --localWhat it does:
- Prompts for confirmation (skip with
--force) - Runs
docker compose downfrom the current directory - Removes
.devlake-local.json
Deletes the Azure resource group and all resources within it. This includes Container Instances, MySQL, Key Vault, and (if applicable) Container Registry.
gh devlake cleanup --azure
gh devlake cleanup --azure --force # no confirmation prompt
gh devlake cleanup --azure --keep-resource-group # delete resources, keep the RGWhat it does:
- Reads resource group and resource names from
.devlake-azure.json(or--state-file) - Prints a summary of resources to be deleted
- Prompts for confirmation (skip with
--force) - Checks Azure CLI login
- Deletes the resource group (or individual resources if
--keep-resource-group) - Removes
.devlake-azure.json
Note: Resource group deletion runs in the background in Azure. Use
az group show --name <rg>to check completion status.
If .devlake-azure.json is missing, use --resource-group to specify the RG directly:
gh devlake cleanup --azure --resource-group devlake-rg --force# Auto-detect (uses state file)
gh devlake cleanup
# Local — stop Docker containers
gh devlake cleanup --local
# Azure — with confirmation prompt
gh devlake cleanup --azure
# Azure — no prompt
gh devlake cleanup --azure --force
# Azure — delete resources but keep resource group
gh devlake cleanup --azure --keep-resource-group
# Point at a non-default state file
gh devlake cleanup --state-file /path/to/.devlake-azure.json- deploy.md
- state-files.md — what gets cleaned up
- status.md