fps*_*dfm 7 docker dockerfile visual-studio-code databricks
我正在 VSCode 远程容器(在同一台机器上)中开发解决方案。一个项目需要一个在 VSCode 容器选择对话框中不可用的图像。有问题的图像可以在这里databricksruntime/standard找到。
我需要Dockerfile与定义相匹配devcontainer.json,以便容器符合该规范。我Dockerfile通过导航到关联的 Git找到了内容。
FROM databricksruntime/dbfsfuse:experimental
RUN apt-get update \
&& apt-get install -y openssh-server \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Warning: the created user has root permissions inside the container
# Warning: you still need to start the ssh process with `sudo service ssh start`
RUN useradd --create-home --shell /bin/bash --groups sudo ubuntu
Run Code Online (Sandbox Code Playgroud)
我在构建容器时手动创建了devcontainer.json目标图像。Dockerfile
{
"name": "databricksruntime/standard",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"customizations": {
"vscode": {
"extensions": ["dbaeumer.vscode-eslint"]
}
},
"remoteUser": "vscode",
"features": {
"git": "latest",
"git-lfs": "latest"
}
}
Run Code Online (Sandbox Code Playgroud)
我选择了“打开远程窗口”(VSCode GUI 的左下角)->“在容器中重新打开”。
这引发了:
[2022-08-05T17:01:32.739Z]来自守护程序的错误响应:databricksruntime/dbfsfuse 的清单: 未找到实验:清单未知:清单未知
[2022-08-05T17:01:32.832Z] 停止(2843 毫秒):运行:docker pull databricksruntime/dbfsfuse:experimental
[2022-08-05T17:01:32.833Z] []
[2022-08-05T17:01:32.833Z]错误:没有这样的图像:databricksruntime/dbfsfuse:experimental
当我们检查时,Dockerfile我们可以看到它引用了另一个图像。我查看了 pull 命令,docker pull databricksruntime/dbfsfuse并在终端中运行了它。该镜像已经存在并且在 Docker GUI 中可见。:experimental我注意到 pull 命令并不像第一行那样包含后缀Dockerfile。我把后缀去掉了 现在Dockerfile构建。
[+] Building 67.0s (17/17) FINISHED
=> [internal] load build definition from Dockerfile-with-features 0.1s
=> => transferring dockerfile: 844B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> resolve image config for docker.io/docker/dockerfile:1.4 2.0s
=> [auth] docker/dockerfile:pull token for registry-1.docker.io 0.0s
=> CACHED docker-image://docker.io/docker/dockerfile:1.4@sha256:443aab4c 0.0s
=> [internal] load .dockerignore 0.0s
=> [internal] load build definition from Dockerfile-with-features 0.0s
=> [internal] load metadata for docker.io/databricksruntime/dbfsfuse:lat 0.0s
=> [context dev_containers_feature_content_source] load .dockerignore 0.0s
=> => transferring dev_containers_feature_content_source: 2B 0.0s
=> [dev_container_auto_added_stage_label 1/3] FROM docker.io/databricksr 0.2s
=> [context dev_containers_feature_content_source] load from client 0.1s
=> => transferring dev_containers_feature_content_source: 270.81kB 0.0s
=> [dev_container_auto_added_stage_label 2/3] RUN apt-get update && a 22.2s
=> [dev_container_auto_added_stage_label 3/3] RUN useradd --create-home 0.6s
=> [stage-1 1/2] COPY --from=dev_containers_feature_content_source . /tm 0.1s
=> [stage-1 2/2] RUN cd /tmp/build-features/local-cache && chmod +x ./i 41.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:aa97f07c0ec4c2e8ae9d512da1bc45b63b32396266134 0.0s
=> => naming to docker.io/library/vsc-parallelloadsscd4-d62f8c81c6e595b4 0.0s
=> exporting cache 0.0s
=> => preparing build cache for export 0.0s
Run Code Online (Sandbox Code Playgroud)
容器启动然后进行测试。又出现了一个错误:
[70182 ms] Shell 服务器终止(代码:126,信号:null)
[70182 ms] 无法找到用户 vscode:密码文件中没有匹配的条目
[2022-08-05T17:10:05.189Z] 启动:在容器中运行:cat /etc/passwd
[2022-08-05T17:10:05.189Z] 标准输入已关闭![2022-08-05T17:10:05.190Z]
错误:设置容器时发生错误。[2022-08-05T17:10:05.190Z] 在 HR (c:\Users\mruser.vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js: 239:2183) [2022-08-05T17:10:05.190Z] 在 tb (c:\Users\mruser.vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\ devContainersSpecCLI.js:239:2121)
[2022-08-05T17:10:05.190Z] 在 processTicksAndRejections (node:internal/process/task_queues:96:5) [2022-08-05T17:10:05.190Z]
在异步 QR (c:\Users\mruser. vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js:245:2006)
[2022-08-05T17:10:05.190Z] 在 async cb (c:\Users\mruser.vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js :245:3110)
[2022-08-05T17:10:05.190Z] 在 async i_ (c:\Users\mruser.vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js :245:13194)
[2022-08-05T17:10:05.190Z] 在 async n_ (c:\Users\mruser.vscode\extensions\ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js :245:12950)
[2022-08-05T17:10:05.200Z] 停止(69586 毫秒):运行:C:\Users\mruser\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\mruser.vscode\extensions \ms-vscode-remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js up --user-data-folder c:\Users\mruser\AppData\Roaming\Code\User\globalStorage\ms -vscode-remote.remote-containers\data --workspace-folder c:\Users\mruser\source\repos\data\ParallelLoadsScd4 --workspace-mount-consistency 缓存 --id-label devcontainer.local_folder=c:\Users \mruser\source\repos\data\ParallelLoadsScd4 --日志级别调试 --log-format json --config c:\Users\mruser\source\repos\data\ParallelLoadsScd4.devcontainer\devcontainer.json --default-user -env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git -根真
[2022-08-05T17:10:05.200Z] 退出代码 1
[2022-08-05T17:10:05.204Z] 命令失败: C:\Users\mruser\AppData\Local\Programs\Microsoft VS Code\Code.exe c:\Users\mruser.vscode\extensions\ms-vscode- Remote.remote-containers-0.241.3\dist\spec-node\devContainersSpecCLI.js up --user-data-folder c:\Users\mruser\AppData\Roaming\Code\User\globalStorage\ms-vscode-remote。远程容器\数据 --工作空间文件夹 c:\Users\mruser\source\repos\data\ParallelLoadsScd4 --workspace-mount-consistency 缓存 --id-label devcontainer.local_folder=c:\Users\mruser\source\ repos\data\ParallelLoadsScd4 --log-level debug --log-format json --config c:\Users\mruser\source\repos\data\ParallelLoadsScd4.devcontainer\devcontainer.json --default-user-env-probe loginInteractiveShell --mount type=volume,source=vscode,target=/vscode,external=true --skip-post-create --update-remote-user-uid-default on --mount-workspace-git-root true
[2022-08-05T17:10:05.204Z] 退出代码 1
VSCode 缺少用户。该用户大概是为了让 VSCode 本地可以与 VSCode 远程进行交互。该用户的定义"remoteUser": "vscode",如下devcontainer.json。
我已经看到这个答案了。我不确定如何定义这个用户,需要更多阅读。
我修改了将vscode 用户devcontainer.json设置为. 这似乎是错误的。容器现在正在运行。我参考了这篇文章。"remoteUser": "root",
我仍在调查此事。有人遇到过这个问题吗?我缺少什么?
| 归档时间: |
|
| 查看次数: |
11269 次 |
| 最近记录: |