我用一个特殊的bash脚本启动一个Docker容器,该脚本运行该容器,然后在容器中创建一个具有动态名称,UID和GUID的用户X。然后,我可以猛击到容器中,并以该用户X的身份执行操作。脚本还创建了一个名为vscode的“别名”用户,其用户标识与先前创建的动态用户X相同。
在VSCode中,我可以附加到此容器。两个问题:
解决方案应该是自动化的。例如。可以进行手动干预并按以下建议的方式提交映像,但这会使用户更难以使用我的Docker映像。
我更新到vscode 1.39并尝试添加:
off
但是“ server-env-setup”似乎仅用于WSL。
答案 0 :(得分:1)
我将按照还原后的顺序回答您的问题:
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 documentation的容器时,您可以查看remote machines并使用devcontainer.json配置。
答案 1 :(得分:1)
VSCode现在实现了可以在映像配置中设置的“ remoteUser”属性。这将确保VSCode以正确的用户身份登录到容器。