在没有本地文件的docker映像上使用VSCode远程开发

时间:2019-06-05 14:29:27

标签: docker visual-studio-code vscode-remote

动机

到目前为止,我们正在使用由docker-compose管理的五个docker容器(MySQL,PHP,静态...)。我们只需要访问其中之一。现在,我们在内部拥有所有数据的本地副本,并将其从Windows同步到容器,但这很慢,Windows上的VSCode有时会随机锁定文件,导致git rebase origin/master以非常不愉快的方式结束。

期望的行为

使用VSCode远程开发扩展来:

  • 在Windows中编辑容器内的文件而没有任何镜像文件
  • 运行git命令(签出,变基,合并...)
  • 运行构建命令(make,ng,npm)
  • 仍然使Windows与许多开发人员一样,它仍是首选的平台。

问题

是否可以使用VSCode在docker容器内进行开发?


我尝试遵循official guide,但是它们似乎确实要求我们拥有镜像文件。我们也使用WSL。

1 个答案:

答案 0 :(得分:0)

这听起来就像我所做的一样。我的团队在桌面上使用Windows,我们开发了一个容器化的Linux应用。

我们使用VSCode dev容器。对于这种情况,它们是一个很好的解决方案。

您也许还可以SSH到您的docker主机并在其上进行编码,但是我认为这样做不太好,因为您希望将所有自定义设置保持为“包含”-我在其中安装了一些生活质量软件包我希望将开发容器放在同事的环境中,并远离Docker主机。

我们有权访问Docker主机,因此我们将源代码克隆到Docker主机上并通过它进行安装。我们还从Docker主机绑定安装文件夹以获取SQL和Redis数据-但这可以通过Docker卷来实现。 IIUC,工作空间文件夹本身确实必须是绑定安装-实际上,在devcontainer.json文件中不允许有其他选择。但是由于您仍然需要对docker守护程序进行许可,因此这可能是可以实现的。

所有源代码操作都发生在dev容器中,即在Linux中。我们从那里提交并推送,我们在那里编辑代码。如果我们需要在笔记本电脑上使用存储库,则可以在本地将其提取。没有rcopy,没有SCP-github是我们的“同步”机制。我们以前曾使用过流浪汉并从Windows挂载源代码-符号链接对我们来说是绝对的痛苦,但是可能任何尝试将Windows的源代码装载到Linux中的人都会在某些方面遇到麻烦。

开发容器中的

VSCode与本地经验非常相似。您将在终端中获得bash。说实话,如果不碰bash,您可能无法像这样工作。但是,您可以将PSv7安装在容器和/或“更好”的外壳(opinion mine)(例如zsh)中。