如何在VS Code中让DevContainer默认使用Bash而非Sh启动?
解决DevContainer默认启动Bash的问题
先修正你踩的坑
- 你添加的
postCreateCommand: "/bin/bash"会让容器创建后一直运行bash进程,导致无限挂起,直接删掉这行即可。 terminal.integrated.shell.linux是VS Code旧版配置项,现在已经废弃,完全不起作用。
正确配置步骤
- 确保镜像中安装了Bash
如果你的基础镜像(比如Alpine这类默认只有sh的轻量镜像)没有预装bash,先在Dockerfile里安装:
# 以Alpine为例,其他镜像替换对应包管理命令 RUN apk add --no-cache bash # 设置容器启动默认命令为bash CMD ["/bin/bash"]
- 更新devcontainer.json配置
用新版终端默认配置项替换原来的settings部分:
{ "name": "My environment", "dockerFile": "Dockerfile", "remoteUser": "dev", "customizations": { "vscode": { "settings": { "terminal.integrated.defaultProfile.linux": "bash" } } } }
这个配置会强制VS Code在容器内打开终端时默认使用bash。
- 额外兜底方案(若以上无效)
如果终端默认配置仍不生效,可以通过runArgs强制容器启动时直接进入bash:
{ "name": "My environment", "dockerFile": "Dockerfile", "remoteUser": "dev", "customizations": { "vscode": { "settings": { "terminal.integrated.defaultProfile.linux": "bash" } } }, "runArgs": ["-it", "--entrypoint", "/bin/bash"] }
内容的提问来源于stack exchange,提问作者Paprika
相关产品推荐
相关产品推荐

