Skip to content

Devcontainer fails with valid Docker Compose – incompatible with Docker spec #53478

Description

@thebinodlohani

Reproduction steps

1.Use a docker-compose file
services:
django: &django
build:
context: .
dockerfile: ./compose/local/django/Dockerfile
image: djfactory_local_django
container_name: djfactory_local_django
depends_on:
- postgres
- redis
- mailpit
volumes:
- djfactory_venv:/app/.venv
- .:/app

env_file:
  - ./.envs/.local/.django
  - ./.envs/.local/.postgres
ports:
  - "8000:8000"
command: /start
  1. Run devcontainer in Zed

Current vs. Expected behavior

Expected behavior:
Zed should accept any Docker Compose configuration that is valid according to Docker Compose spec.

Actual behavior:

Zed fails with errors like:

Error deserializing from raw json:
invalid type: map, expected a string

and:

missing field source

Additional context:

Running docker compose config --format json produces valid output
"volumes": [
{
"type": "volume",
"source": "djfactory_venv",
"target": "/app/.venv",
"volume": {}
},
{
"type": "bind",
"source": "/Volumes/WindowsDD/pyproject/djfactory/djfactory",
"target": "/app",
"bind": {
"create_host_path": true
}
}
]
The issue seems to come from Zed's JSON deserialization expecting something else

Impact:

This prevents using:

advanced volume configurations
bind options like create_host_path
production-like compose setups

Suggested fix:

Zed devcontainer parser should support the full Docker Compose spec, including long-form volume definitions.

Zed version and system specs

Zed: v0.231.1+stable.213.e71b6aa44ffaac9bdaf986288289359e6f1b3572 (Zed)
OS: macOS 13.6.4
Memory: 8 GiB
Architecture: x86_64

Docker version 27.4.0, build bde2b89
Docker Compose version v2.31.0-desktop.2

Attach Zed log file

Zed.log
2026-04-09T07:01:41+05:45 ERROR [dev_container::command_json] Error running command Command { program: "docker", args: ["compose", "-f", "/Volumes/WindowsDD/pyproject/djfactory/djfactory/.devcontainer/../docker-compose.local.yml", "config", "--format", "json"], envs: {}, env_clear: false, current_dir: None, stdin_cfg: Some(Null), stdout_cfg: Some(Piped), stderr_cfg: Some(Piped), kill_on_drop: false }: Error deserializing from raw json: missing field `source` at line 55 column 9
2026-04-09T07:01:41+05:45 ERROR [recent_projects::remote_servers] Failed to start dev container: DevContainerUpFailed("Failed with nested error: CommandFailed(\"docker\")")

Relevant Zed settings

settings.json

Relevant Keymap

keymap.json

(for AI issues) Model provider details

No response

If you are using WSL on Windows, what flavor of Linux are you using?

None

Metadata

Metadata

Assignees

Labels

state:needs researchFeedback that requires further investigation

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions