Skip to content

Repository files navigation

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:

Task Effect
up starts the service and its dependencies, attached so logs appear in the terminal
run starts a one-off container for the service
down stops and removes the service's containers

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

Configuration

By default, this extension associates Dockerfile, dockerfile, and Containerfile with Dockerfile syntax.

To match additional custom patterns (such as Dockerfile.dev or Dockerfile.prod), add the file_types setting to your user or project settings.json:

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

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.

About

No description, website, or topics provided.

Resources

Stars

88 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages