VS Code Dev Containers扩展打开Podman容器时出现段错误
问题:切换到Podman/Podman-Compose后VS Code Dev Containers连接容器失败
原本使用Docker/Docker-Compose可正常运行项目,切换为Podman/Podman-Compose后,使用VS Code的Dev Containers扩展打开容器时出现服务崩溃,核心错误日志如下:
[11115 ms] [11115 ms] Start: Starting VS Code Server [11116 ms] Start: Preparing Extensions [11116 ms] Start: Run in container: test ! -f '/root/.vscode-server/data/Machine/.installExtensionsMarker' && set -o noclobber && mkdir -p '/root/.vscode-server/data/Machine' && { > '/root/.vscode-server/data/Machine/.installExtensionsMarker' ; } 2> /dev/null [11128 ms] [11129 ms] [11129 ms] Exit code 1 [11129 ms] Extensions cache, install extensions: None [11129 ms] Start: Run in container: test -d /root/.vscode-server/extensionsCache && ls /root/.vscode-server/extensionsCache || true [11140 ms] [11140 ms] [11140 ms] Start: Run in container: test -d /vscode/vscode-server/extensionsCache && ls /vscode/vscode-server/extensionsCache || true [11149 ms] [11149 ms] [11149 ms] Extensions cache, link in container: None [11149 ms] Optimizing extensions for quality: stable [11149 ms] Start: Run in container: /root/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794/bin * * Visual Studio Code Server * * By using the software, you agree to * the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and * the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement). * [12922 ms] Server bound to 127.0.0.1:33077 (IPv4) Extension host agent listening on 33077 [14020 ms] Container server: Segmentation fault (core dumped) [14064 ms] Error: unexpected end of parent stream at So.destroy (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:106773) at So.write (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:107514) at /Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:109617 at /Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:95001 at /Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:97674 at Object.cb (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:104092) at c (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:102318) at /Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:24:102465 at s (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:27:5371) at Socket.<anonymous> (/Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/extension/extension.js:27:5541) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1358:12) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) [14065 ms] Container server terminated (code: 139, signal: null). [15381 ms] Start: Run in container: echo 33077 >'/root/.vscode-server/data/Machine/.devport-6c3e3dba23e8fadc360aed75ce363ba185c49794' [15383 ms] userEnvProbe is taking longer than 2 seconds. Process not found. [15399 ms] [15399 ms] [15400 ms] Start: Run in container: mkdir -p '/tmp/devcontainers-1b89834a-fb03-4bf3-ae06-650fb90e26e91692287263792' && cat > '/tmp/devcontainers-1b89834a-fb03-4bf3-ae06-650fb90e26e91692287263792/env-loginInteractiveShell.json' << 'envJSON' [15400 ms] Port forwarding for container port 33077 starts listening on local port. [15400 ms] Port forwarding local port 33077 to container port 33077 [15401 ms] Start: Run: /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) --ms-enable-electron-run-as-node /Users/david.dsilva/.vscode/extensions/ms-vscode-remote.remote-containers-0.304.0/dist/spec-node/devContainersSpecCLI.js run-user-commands --user-data-folder /Users/david.dsilva/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data --docker-path podman --docker-compose-path podman-compose --container-session-data-folder /tmp/devcontainers-1b89834a-fb03-4bf3-ae06-650fb90e26e91692287263792 --workspace-folder /Users/david.dsilva/gitprojects/tenzing --id-label devcontainer.local_folder=/Users/david.dsilva/gitprojects/tenzing --container-id bf03ac3cc33d13c6fcc88486049f00f21910a2bacfbc0842c62f71a0880b8a40 --log-level debug --log-format json --config /Users/david.dsilva/gitprojects/tenzing/.devcontainer/devcontainer.json --default-user-env-probe loginInteractiveShell --skip-non-blocking-commands false --prebuild false --stop-for-personalization true --remote-env REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-4a3b608b-6e6c-401b-ae7b-85bc74c3e421.sock --remote-env SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-4a3b608b-6e6c-401b-ae7b-85bc74c3e421.sock --remote-env REMOTE_CONTAINERS=true --mount-workspace-git-root true --terminal-columns 205 --terminal-rows 22 --dotfiles-target-path ~/dotfiles [15478 ms] [15479 ms] [15484 ms] Port forwarding connection from 51128 > 33077 > 33077 in the container. [15484 ms] Start: Run in container: /root/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794/node -e [15537 ms] @devcontainers/cli 0.50.0. Node.js v16.17.1. darwin 22.1.0 arm64.
解决思路
- 升级组件版本:将Podman升级到最新稳定版,同时更新VS Code及Dev Containers扩展,确保arm64架构下的兼容性。
- 重建VS Code Server:删除容器内的
/root/.vscode-server目录,让Dev Containers重新下载适配容器架构的二进制文件;检查容器基础镜像是否为arm64版本,避免跨架构模拟导致的段错误。 - 调整Dev Containers配置:在
devcontainer.json中添加"overrideCommand": false,防止容器启动命令被修改;明确指定"remoteUser": "root"或使用非root用户,排查权限冲突。 - 检查Podman网络:在
compose.yml中指定网络模式为bridge,或启用Dev Containers的端口转发调试日志,验证端口映射是否正常。 - 清理缓存:执行
podman system prune -a清理Podman容器、镜像及缓存;删除本地VS Code的Dev Containers缓存目录~/Library/Application Support/Code/User/globalStorage/ms-vscode-remote.remote-containers/data,重建容器。 - 手动验证VS Code Server:通过
podman exec进入容器,手动运行/root/.vscode-server/bin/<commit-id>/bin,查看是否能正常启动,定位容器内环境问题。
内容的提问来源于stack exchange,提问作者David D'Silva
相关产品推荐
相关产品推荐

