gpt4 book ai didi

docker - 设置正确的用户时如何将VSCode附加到远程Docker容器

转载 作者:行者123 更新时间:2023-12-02 18:19:01 58 4
gpt4 key购买 nike

我使用运行容器的特殊bash脚本启动Docker容器,然后在容器中创建具有动态名称,UID和GUID的用户X。然后,我可以猛击到容器中并以该用户X的身份执行操作。脚本还创建了一个名为vscode的“别名”用户,其用户ID与先前创建的动态用户X相同。

在VSCode中,我可以附加到此容器。两个问题:

  • 如何设置VSCode以“vscode”用户或X用户身份执行所有操作? (当使用devcontainer.json创建容器时,这是微不足道的,但是现在我附加到现有的容器上,并且不使用devcontainer.json)。
  • 在devcontainer.json中,您可以选择自动安装扩展。我需要创建哪个设置文件以在连接到容器时自动安装扩展程序?

  • 该解决方案应该是自动化的。例如。可以按照下面的建议进行手动干预并提交镜像,但这会使用户更难使用我的Docker镜像。

    我更新到vscode 1.39并尝试添加:
    ADD server-env-setup /root/.vscode-server/server-env-setup

    但是“server-env-setup”似乎仅用于WSL。

    最佳答案

    我将以还原顺序回答您的问题:

    VSCode在使用docker exec命令创建容器之后安装扩展。

    现在,配方:最简单的方法是获取VSCode已经创建的容器:

  • 运行“在容器上打开文件夹”以创建dev容器。
  • 容器完成后,即可使用VSCode。通过单击“关闭远程连接”来停止环境。
  • 运行docker ps -a。您应该看到上次死亡的容器如下:
    last running docker images
  • 如何查看最新运行的容器是:a7aa5af7ec08 vsc-typescript-2ea9f347739c5397afc431028000c02b。这是您安装了所有扩展程序的容器。手动安装扩展或通过devcontainer.json配置都无所谓。
  • 运行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配置。

    关于docker - 设置正确的用户时如何将VSCode附加到远程Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58353692/

    58 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com