使用 Dev Container 构建共享开发环境(docker, VSCode, 扩展)

关于使用Dev Container构建共同开发环境。

在人才派遣机构的岗位中,很常见地从事软件开发工作。但通常情况下,我并不会被提供工作场所的电脑,而是需要自带电脑(尤其是Windows)。如果操作系统的版本不同,就无法搭建该工作场所的开发环境,结果常常会浪费一周的时间。还有更糟糕的情况,就是软件版本不稳定或不兼容的问题。

虽然我知道这已经变得很长了,但我最近了解到的开发环境可再现性就是使用Dev Container进行开发环境搭建。
这有一些优缺点,但我个人认为非常好。
优点包括:
– 本地环境污染度低
– 可以创建可再现的开发环境,为所有开发人员提供相同的开发环境
– 可以通过git进行代码库开发
– 更容易部署到生产环境

以下是其中一种中文的重新表述:
缺点
·对于机器的要求相对较高(至少需要 core-i7、ryzen7等级的处理器)
·需要相对较多的内存(至少8GB以上)
·启动速度较慢

最近我的个人想法是,我认为将开发环境全部配置在虚拟机中,通过远程桌面协议(RDP)来访问,以避免在本机上污染我的工作环境,这是最佳做法。

我將構建Python和PostgreSQL環境。

我们来尝试在能够进行各种游戏的“Python&PostgreSQL”容器中构建环境。
特别是对于 PostgreSQL,我们可以在容器内外都可以访问的情况下进行端口开放,这可能对学习会有所帮助吧?

事前的准备

構築 Dev Containe 的开发环境需要事先准备。按照以下顺序进行准备:
– 启用 BIOS 中的 Intel VT-x 和 AMD-V 虚拟化硬件扩展
– 安装 WSL2 (仅适用于 Windows)
– 安装 Docker Desktop for Windows (若为 Mac,则安装 Docker Desktop for Mac)
– 安装 VSCode
– 安装 VSCode 扩展

安装WSL2

为了运行Docker,需要安装WSL2。对于Windows 10,由于默认不支持WSL2,因此需要按照本节的步骤进行安装。(虽然我没有Windows 11,但我相信步骤应该是相同的…)

在Windows 10中,有以下限制:
– 版本必须为22H或更高
– 必须是64位操作系统
– 必须应用最新的Windows更新(可能有些地方无法适用)

启用Windows功能

10.png

我会遵循指示,因为被告知需要重新启动。

安装WSL2

首先,在这个阶段,需要更新Windows Update或者是升级所有的扩展功能,如22H等。
当进行调查时,可以找到”安装WSL2 Linux内核”的方法,但是只需要以下命令就可以进行安装。
值得一提的是,请以管理员权限运行DOS窗口。

C:\Windows\system32> wsl --update
C:\Windows\system32> wsl --install
11.png

在安装WSL2 Ubuntu时,未能成功注册Linux管理用户。

接下来,我们将使WSL2成为默认版本可用。

C:\Windows\system32> wsl --set-default-version 2
12.png

安装 Windows 版的 Docker Desktop。

21.png

安装VSCode

下載並安裝VSCode,如果你希望使用日語,我建議先安裝日語擴充程式。

在中国本土,安装VSCode扩展。

根据资讯,提到了安装”Dev Containers”,但是由于安装不成功,所以我转而尝试下一步操作。

30.png
31.png

使用Dev Container新建开发环境(Python和PostgreSQL)。

我查到的文章可能已經過時了,即使按照步驟進行,菜單的顯示也有微妙的差異。首先運行Docker Desktop,然後嘗試使用VSCode的新的Dev Container建立開發環境。有各種不同的容器可供選擇,但這次我們選擇”Python & PostgreSQL”。

40.png
42.png
43.png
44.png

验证 PostgreSQL 运行是否正常

45.png

能确定

在中文中对“PostgreSQL 的端口开放”进行释义:

确认在VSCode环境下可以连接到PostgreSQL,但现在我们尝试从Windows主机端进行连接。即所谓的端口开放。
尽管说起Windows主机变得混乱令人不爽,但由于在命令行中操作SQL很痛苦,我们会安装一个名为”A5-Mk2″的SQL客户端软件。然后进行容器中的PostgreSQL端口的开放。

50.png
51.png
53.png
54.png

试着使用 Dev Container 来测试开发环境的可复现性。

虽然说要单独准备Windows10。因为操作系统太贵了…

微软的Windows 10(也包括11)提供了一个有时限的开发者评估版本,该版本可以在进行操作验证时试用,无需额外购买操作系统许可证。(但在商业使用时需谨慎)
因此,可以使用VirtualBox、VMware等虚拟机的ISO文件,或者其他独立的安装程序ISO文件进行安装,例如在Proxmox中。稍微有些不方便的是,默认语言为英语且默认为本地账户,因此只需注意这一点,就可以正常使用,没有任何差别。

那么,我们来讨论再现性的主题。

我已经创建了Python和PostgreSQL环境,现在我们可以尝试使用该项目直接。

在这里要讨论的可再现性,绝非简单的“轻松!”一键操作,基本的环境本身需要预先安装。
– 安装WSL2(仅适用于Windows)
– 安装Windows上的Docker Desktop(对于Mac,则安装Mac上的Docker Desktop)
– 安装VSCode
– 安装VSCode的扩展插件

.devcontainer文件夹的位置

请先将先前创建的 “Python & PostgreSQL” 容器中的 .devcontainer 目录进行复制。

可能会有所变化,但截至2023年9月1日,以下是现状。如果有不同,请在资源管理器中进行搜索。

\\wsl.localhost\docker-desktop-data\data\docker\volumes\postgres\_data\postgres\.devcontainer
62.png

将.devcontainer复制到Windows上以重新创建开发环境。

我标题所言。
想要复现开发环境,请将.devcontainer复制到Windows上。
随便创建一个目录,然后将.devcontainer放在该目录内。

C:/postgres_python/.devcontainer 类似这样

然后打开VSCode(确保Docker已启动),并指定上述文件夹C:/postgres_python进行打开。

60.png

会花一些时间,Python和PostgreSQL环境将会安装好。

新建一个文件的时候,它会被放置在 C:/postgres_python 这个路径下,有点让人感到困惑(可能只是我不知道而已w),但还是可以接受。

更进一步作为一个共同开发环境。

如果使用git或其他什么东西,作为共同开发环境似乎很不错。

最后

这次我特别意识到的是 WSL2 的进化,我突然意识到它真的很方便。以前在 Windows 上使用 Linux 时需要用 Git Bash,现在借助 WSL2 可以告别这个了。还有,容器也是一个重要的方面。在 Linux 上,你可以从头安装操作系统并使用 Ansible 或 Chef 进行应用程序配置,但使用容器就不需要这么麻烦了。

这个 Dev Container 只支持 VSCode,听说是这样的。由于我们公司有很多 Eclipse 支持者,不知道他们会不会用这个…哈哈。。。w

我参考了您的网站。

・通过使用VSCode Dev Container搭建开发环境
・Devcontainer(Remote Container)是一个很好的选择,关于配置开发环境的讨论
・通过VSCode和Devcontainer开始搭建开发环境
・在Windows 10上使用Linux(WSL2)
・对WSL2的安装进行简明解说

bannerAds