【发布时间】:2020-02-10 03:27:21
【问题描述】:
我的项目中有以下devcontainer.json 文件。
当我尝试在容器中打开 VSCode 时,它会崩溃。容器构建成功,但在启动过程中会发出以下日志。当我删除环境变量配置时,容器启动并保持运行良好。
根据Advanced Container Configuration 的 Visual Studio Code 文档,我按照示例在 dev 容器内配置环境变量。
问题:如何在devcontainer.json 文件中正确配置PATH 环境变量?
devcontainer.json
{
"name": "Ubuntu 18.04 & Git",
"dockerFile": "Dockerfile",
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"containerEnv": {
"PATH": "${containerEnv:PATH}:/root/.customfolder/bin/"
}
}
日志
6499 ms] Successfully built 096d41dceada
[6503 ms] Successfully tagged vsc-asdf-73cee28d5205fdd4a6063fc596248885:latest
[6506 ms] Start: Run: git rev-parse --show-toplevel
[6533 ms] Start: Starting container
[6533 ms] Start: Run: docker run -a STDOUT -a STDERR --mount type=bind,source=/Users/username/git/asdf,target=/workspaces/asdf,consistency=cached --mount source=/Users/username/.aws/credentials,target=/root/.aws/credentials,type=bind -l vsch.quality=stable -l vsch.remote.devPort=0 -l vsch.local.folder=/Users/username/git/asdf -e PATH=${containerEnv:PATH}:/root/.customfolder/bin/ --entrypoint /bin/sh vsc-pulumi-73cee28d5205fdd4a6063fc596248885 -c echo Container started ; while sleep 1; do :; done
[6852 ms] /bin/sh: 1: sleep: not found
[6852 ms] Container started
[6873 ms] Start: Inspecting container
[6879 ms] Start: Run in container: uname -m
[7031 ms] Start: Run in container: cat /etc/passwd
[7035 ms] Shell server terminated (code: 1, signal: null)
Error response from daemon: Container 8e0f6eeb22c358b0dfd8f1c1410c10b382ea66aa432e7e400a4564671619046f is not running
设置容器时出错
环境
- MacOS Catalina
- Docker 桌面 2.2.0.0
- Microsoft Visual Studio 代码 1.42.0
- VSCode 远程容器扩展 0.101.0
【问题讨论】:
-
不管怎样,我在使用我的一个开发容器升级到 VS Code 1.42.0 后遇到了问题。我收到类似的错误。这个容器以前工作得很好。这是在带有 Docker CE 19.03.3~3-0~ubuntu-disco 的 Ubuntu Eoan 上。 [6453 ms] 开始:检查容器 [6457 ms] 开始:在容器中运行:uname -m [6584 ms] 开始:在容器中运行:cat /etc/passwd [6588 ms] Shell 服务器终止(代码:137,信号:空)
-
经过进一步测试,这似乎是由我在 Dockerfile 中使用的“CMD”选项引起的(不知道为什么它之前有效)。我完全删除了该选项,我的开发容器现在可以工作了。
-
@shthead 嗯,我的
CMD中根本没有CMD指令。感谢您分享任何一种方式。