使用 Dev Container 多个愿望一次满足

好消息!好消息!重大好消息!

你还在为 iflow 偷偷调用 shell 工具访问工作区外的文件而后怕吗?
你还在为 iflow 执行 powershell 时错误使用 && 指令而无语吗?
你还在为 iflow 在 windows 下 vscode 插件老是识别不到 iflow 的存在而烦恼吗?
你还在 …

那就来试试 vscode dev container 吧


现在介绍一下这玩意,核心就是将 docker 容器作为开发环境

  • 直接解决“在我电脑上明明可以运行”的问题
  • 直接在仓库中拉代码打开就相当于配置好环境(换电脑就要重新配环境 :sob:
  • 每个项目的依赖库都在各自的容器中,互不干扰(虽然使用虚拟环境隔离也是一样的 :joy:

这和 iflow 看上去没什么关系是吧,但是发现没有,前面提到的很多都是 Windows 特有的问题,而 dev container 很多都是 Debian 的容器,只要不用 Windows 就不会有 Windows 的问题 :nerd_face::backhand_index_pointing_up:

这时候就会说,wsl 不是一样可以吗,这不是还有可能会访问到工作区以外的文件吗 :smirking_face: 而 dev container 是容器,隔离了宿主机删不了工作区以外的内容,除非 iflow 能自己做到容器逃逸,那可就智械危机了


接下来进入主题,准备工作需要先安装 Docker ,然后在 vscode 中安装 Dev Container 插件

操作步骤

以新建项目形式创建可以参考官方文档

接下来讲一下将现有项目改为 dev container 形式

首先创建一个“世界”级工程,用于后面以容器方式打开

使用快捷键 shift + ctrl + p 来搜索指令,搜索 add dev container config... ,然后打开 添加开发容器配置文件

image

然后选择第一个 将配置添加到工作区

这里可以选择自己需要的环境模板,vscode 还会根据当前项目的进行建议,如果没有找到合适的可以先选 Debian / Ubuntu 等 Linux 环境

选完之后就是选容器版本,按需选择就可以了

然后还可以预选一些开发工具,之前选环境没有心仪的也可以在这一步选择

下一步就是问你要不要配置这个 github 的自动更新依赖的 bot,不需要可以直接跳过

等待配置文件生成,当文件夹出现 .devcontainer/devcontainer.json 说明成功了

image

image

这时 vscode 也会弹出提示选择在容器中重新打开,之后如果不小心使用原来的打开方式来打开项目,也可以在这个提示中切换为容器

第一次使用容器打开这个项目时会先拉取镜像

当 vscode 打开一个全新的界面之后,就说明已经在容器里了

测试一下代码能不能运行

接下来就是安装 iflow 了,需要先安装 nodejs 和 npm,然后官方的 node 推荐版本是 22,而包管理只能装 20,所以下面使用 nvm 进行安装

# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

# 刷新环境
source ~/.bashrc

# 安装最新的 nodejs lts 吧,目前是 24
nvm install --lts

# 安装 iflow

bash -c "$(curl -fsSL https://gitee.com/iflow-ai/iflow-cli/raw/main/install.sh)"

# 刷新环境
source ~/.bashrc

然后就是 iflow 启动!

3 个赞

没想到 Dev Container 在 JetBrains IDEs 中同样适用,好像还不用安装插件?

1 个赞

牛蛙牛蛙