← All extensions

Dockerfile

v0.3.0 · by d1y, joshmeads · added 3 November 2026

Dockerfile and Docker Compose support.

LanguagesLanguage serversDebug adapters

How to install

With Forge Super installed, the button above opens the app on this extension, where you press Install. Nothing is installed until you do.

You can also open the Extensions panel in the app and search for Dockerfile. The extension's id is dockerfile.

Don't have Forge Super yet? Download it here.

README

From the extension's repository, written by its authors and not by Mentenaz. See the source.

Dockerfile Zed Extension

Docker Compose

Compose files are given their own Docker Compose language, matched on compose.yaml, compose.yml, docker-compose.yaml and docker-compose.yml. Plain YAML files are unaffected.

Each entry under services: gets runnables, so a single service can be brought up, run and taken down from the gutter:

TaskEffect
upstarts the service and its dependencies, attached so logs appear in the terminal
runstarts a one-off container for the service
downstops and removes the service's containers

Each is offered for docker compose, docker-compose, podman compose and podman-compose.

Configuration

To support matching filenames other than Dockerfile you can add file_types to your Zed project or user settings:

{
  "file_types": {
    "Dockerfile": ["Dockerfile.*"]
  }
}

Debugging

The extension supports debugging Dockerfile builds with Buildx. The minimal required version of Buildx is v0.28.0. To get Buildx, we recommend installing or updating Docker Desktop. You may alternatively install Buildx manually by following the instructions here.

You can validate your Buildx installation by running BUILDX_EXPERIMENTAL=1 docker buildx dap.

You can create a debug configuration by modifying your project's .zed/debug.json.

{
  "label": "Docker: Build", // required, configurable
  "adapter": "buildx-dockerfile", // required, must not be modified
  "request": "launch", // required, must not be modified
  "contextPath": "/home/username/worktree", // optional, defaults to ${ZED_WORKTREE_ROOT}
  "dockerfile": "/home/username/worktree/Dockerfile", // optional, defaults to ${ZED_WORKTREE_ROOT}/Dockerfile
  "target": "test", // optional, should be a build stage in the Dockerfile
  "stopOnEntry": true, // if the debugger should suspend on the first line, defaults to false
  "args": [
    // additional arguments for the build command
    "--build-arg",
    "NODE_ENV=development"
  ]
}

While a build has been suspended, you can evaluate exec to open a shell into the Docker image that has been built up to that point in time.