我有一个开发用例,我使用脚本配置带有 docker-machine 或其他环境的 shell,然后打开一个包含源和设置(/.vscode/、.devcontainer/)的目录,我可以编辑/构建/调试在 VS code Remote Containers延期。
简而言之,我希望实现 following sequence当“start-development.sh”脚本/钩子(Hook)运行时:
见 this通过 docker-machine 使用 AWS 实例自动配置 shell 的简单示例的脚本。我将在接下来的一天左右向这个存储库添加更多示例。
在该目录(
code -w -n --folder-uri /path/here
)中打开 VS Code 并等待它退出很容易(这样我就可以执行清理步骤,例如关闭远程 docker-machine、卸载反向 sshfs 安装的代码或禁用内核模块我用于开发等)。但是,VS 代码当前以“主机模式”打开,当我通过 UI 或命令面板选择“在容器中重新打开”或“重建容器”时,它会终止该进程并打开另一个顶级(?)进程,退出 shell & 丢弃我的配置和/或过早地运行脚本的清理部分,因此它有错误的环境。当它最终在容器内启动时。悲伤。
所以最后,我的问题是:
有没有办法告诉 VS 代码打开“容器内”文件夹?这将为我解决很多问题,而不是一个笨拙的开发人员。循环,我必须确保代码实例不会重新启动并搞砸事情——例如,每当我重建容器时。
或者,最好不要退出顶级
code
我完全开始的过程,使我能够等待,或者可能以我不知道的其他方式监视它,以防止删除我的设置和过早运行我的清理脚本?提前致谢!
PS:请在将其标记为“与开发无关”之前阅读整个问题。如果为复杂的原生项目提供零安装开发环境的想法,使用具有巨大 GPU 的云实例进行实时设备开发/调试或深度学习,您无需手动管理所有内容并编写自述文件页面。对你来说——这非常关乎编程。
最佳答案
经过所有周末尝试不同的事情,我终于想通了!关键是this关于高级容器配置的精彩文章中的部分。
我将其放入 bash 脚本并使用了 jq
合并docker.host
和其他 docker env
设置到 .vscode/settings.json
.见这个例子here .
运行生成此文件的脚本后,用户只需在该工作区文件夹(创 build 置的位置)中重新加载/重新启动 VS 代码,是的,一切都按预期工作。
既然我已经掌握了基础知识,我计划添加一些实际示例。不幸的是,我不得不分开我的create
和 teardown
作为单独的activate
和 deactivate
钩子(Hook)。工作流程还不错,IMO。
关于docker - 如何在调用 "in container"时打开 VS 代码 "Reopen in container"而不会重新启动并丢失 shell 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59493171/