![](/img/trans.png)
[英]In VSCode, 'Python: Remote Attach' fails to connect to a running Docker Container
[英]How to attach VSCode to a remote Docker container while setting the correct user
我使用运行容器的特殊 bash 脚本启动 Docker 容器,然后在容器中创建具有动态名称、UID 和 GUID 的用户 X。 然后我可以将 bash 放入容器中,并以该用户 X 的身份执行操作。该脚本还创建了一个名为 vscode 的“别名”用户,其 UID 与之前创建的动态用户 X 相同。
在 VSCode 中,我可以附加到这个容器。 两个问题:
解决方案应该是自动化的。 例如。 可以按照下面的建议进行手动干预和提交图像,但会使用户更难仅使用我的 Docker 图像。
我更新到 vscode 1.39 并尝试添加:
ADD server-env-setup /root/.vscode-server/server-env-setup
但是“server-env-setup”似乎只用于 WSL。
我将按相反的顺序回答您的问题:
VSCode 在使用docker exec
命令创建容器后安装扩展。
现在配方:最简单的方法是使用 VSCode 已经创建的容器:
docker ps -a
。 您应该看到最后死亡的容器如下: docker commit a7aa5af7ec08 all-installed-vscode-image:latest
。 现在您有了一个 docker 映像,其中安装了您喜爱的所有软件。 您可以将此图像上传到您最喜欢的 docker 注册表并在其他机器上使用。docker run -i -u vscode all-installed-vscode-image:latest
。 并将 vscode 附加到这个容器。 这是您第一个问题的答案。此外,当您附加到已经运行的容器甚至在远程机器上运行的容器时,您可以查看vscode 文档并使用 devcontainer.json 配置。
VSCode 现在实现了一个“remoteUser”属性,您可以在图像配置中设置它。 这将确保 VSCode 以正确的用户身份登录到容器中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.