2

动机

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

期望的行为

使用 VSCode 远程开发扩展来:

  • 编辑容器内的文件,在 Windows 上没有任何镜像文件
  • 运行 git 命令(结帐、变基、合并...)
  • 运行构建命令(make、ng、npm)
  • 仍然保留 Windows,因为对于许多开发人员来说,它是首选平台。

问题

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


我曾尝试遵循官方指南,但他们似乎确实要求我们拥有镜像文件。我们也使用 WSL。

4

1 回答 1

0

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

我们使用 VSCode 开发容器。它们是该场景的绝佳解决方案。

您可能还可以通过 SSH 连接到您的 docker 主机并在其上编写代码,但在我看来,这不太好,因为您希望保持所有自定义“包含” - 我在我的开发容器中安装了一些生活质量包我宁愿避开我同事的环境和 docker 主机。

我们可以访问 docker 主机,因此我们将源代码克隆到 docker 主机上并挂载它。我们还为 SQL 和 Redis 数据从 docker 主机绑定挂载文件夹——但这可以通过 docker 卷来实现。IIUC,工作区文件夹本身确实必须是绑定安装 - 事实上,在 devcontainer.json 文件中不允许其他选择。但是由于无论如何您都需要 docker 守护程序的许可,这可能是可以实现的。

所有源代码操作都发生在开发容器中,即在 Linux 中。我们从那里提交和推送,我们在那里编辑我们的代码。如果我们需要在笔记本电脑上处理 repo,我们会在本地提取它。没有 rcopy,没有 SCP - github 是我们的“同步”机制。我们以前使用 vagrant 并从 Windows 安装源代码 - 符号链接对我们来说绝对是一种痛苦,但可能任何尝试从 Windows 安装源代码到 Linux 的人都会因某些元素或其他元素而感到痛苦。

开发容器中的 VSCode 与本地体验非常相似。您将在终端中获得 bash。说实话,如果不接触 bash,您可能无法像这样工作。但是,您可以在容器中安装 PSv7,和/或安装“更好”的 shell(我的观点),例如 zsh。

于 2020-03-17T08:18:57.490 回答