You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode+WSL环境下Dev Containers启动失败求助

Dev Containers启动失败:容器内product.json为空引发JSON解析错误

在搭配WSL的VSCode中使用Dev Containers开发项目,自昨日起容器无法正常启动。日志显示读取容器内/home/vscode/.vscode-server/bin/b58957e67ee1e712cebf466b995adf4c5307b2bd/product.json文件时触发JSON解析错误,具体日志如下:

[2024-05-04T04:45:06.972Z] Start: Run in container: cat '/home/vscode/.vscode-server/bin/b58957e67ee1e712cebf466b995adf4c5307b2bd/product.json'
[2024-05-04T04:45:06.975Z] Stop (3 ms): Run in container: cat '/home/vscode/.vscode-server/bin/b58957e67ee1e712cebf466b995adf4c5307b2bd/product.json'
[2024-05-04T04:45:06.981Z] SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Kz (c:\Users\juanp\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\extension\extension.js:225:1273)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Oue (c:\Users\juanp\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\extension\extension.js:221:4028)
    at async Nl (c:\Users\juanp\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\extension\extension.js:201:4302)
    at async bpe (c:\Users\juanp\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\extension\extension.js:275:6649)
    at async MN (c:\Users\juanp\.vscode\extensions\ms-vscode-remote.remote-containers-0.362.0\dist\extension\extension.js:278:5396)

经排查,容器内的product.json文件为空是错误诱因。

更新1:删除容器并重新启动项目时,第一个启动的Dev Container可正常运行,但第二个启动的会失败——先启动前端容器则后端容器失败,先启动后端容器则前端容器失败。

项目配置

docker-compose.yml

version: '3'
services:
  backend:
    container_name: backend
    image: mcr.microsoft.com/devcontainers/python:1-3.9-bullseye
    volumes:
      - .:/workspace:cached
    # Other configuration options for the Python container
    command: sleep infinity
    links:
      - frontend
    environment:
      - TZ=Etc/GMT-5
    networks:
      - mnet

  frontend:
    container_name: frontend
    image: mcr.microsoft.com/devcontainers/typescript-node:0-14
    volumes:
      - .:/workspace:cached
    # Other configuration options for the TypeScript container
    command: sleep infinity
    environment:
      - TZ=Etc/GMT-5
    networks:
      - mnet

  postgres-db:
    container_name: postgres-db
    image: postgres:16
    volumes:
      - db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=dbuser
      - POSTGRES_PASSWORD=dbpwd
      - POSTGRES_DB=mydb
    networks:
      - mnet
    ports:
      - 5432:5432
  rabbitmq:
    container_name: rabbitmq
    image: rabbitmq:3.9
    volumes:
      - rabbitmq-data:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=radmin
      - RABBITMQ_DEFAULT_PASS=rpassword
    ports:
      - 5672:5672
      - 15672:15672
    networks:
      - mnet

volumes:
  db-data:
  rabbitmq-data:

networks:
  mnet:
    driver: bridge

.devcontainer目录配置

项目包含.devcontainer目录,内部有backcontainer和frontcontainer两个子目录,各自的devcontainer.json配置如下:

backcontainer/devcontainer.json

{
    "name": "Backend",
    "dockerComposeFile": ["../../docker-compose.yml"],
    "service": "backend",
    "shutdownAction": "none",
    "workspaceFolder": "/workspace/backend"
}

frontcontainer/devcontainer.json

{
    "name": "Frontend",
    "dockerComposeFile": ["../../docker-compose.yml"],
    "service": "frontend",
    "shutdownAction": "none",
    "workspaceFolder": "/workspace/frontend"
}

已尝试的解决方案

  • 重建、删除后端和前端容器
  • 参考过官方仓库的相关解决方案,但问题仍未解决

其他使用Dev Containers的项目可正常运行,目前不知如何修改。

内容的提问来源于stack exchange,提问作者Juan Botero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:42:03