我使用运行容器的特殊bash脚本启动Docker容器,然后在容器中创建具有动态名称,UID和GUID的用户X。然后,我可以猛击到容器中并以该用户X的身份执行操作。脚本还创建了一个名为vscode的“别名”用户,其用户ID与先前创建的动态用户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 documentation上运行的容器时,您可以查看remote machines并使用devcontainer.json配置。