本文小编向大家推荐一款可轻松创建隔离的 shell 和容器的开源工具。这款工具叫做 Devbox, 中文名译为 开发者沙箱,GitHub Star 已经有6.6k。
下面给大家介绍这款工具的功能和使用。
项目介绍
Devbox
是一个可以让我们轻松创建隔离环境的 shell
与 容器
的命令行工具。
开源地址:https://github.com/jetpack-io/devbox
首先定义你所使用开发环境中所需的软件包列表,然后 Devbox
将使用该定义来为我们的应用程序创建一个隔离的环境。
它的工作方式类似于 nodejs 环境中的 yarn
软件包管理器。只不过它所管理的软件包是操作系统级别的。
这些包你通常会通过 brew和 apt-get来进行安装。
主要功能
- • 支持Python及Go语言
- • 瞬间将你的应用程序变成一个容器
- • 不以牺牲速度为代价
- • 同版本冲突说再见
- • 不再重复声明依赖关系
- • 为团队中的每一个人提供一个统一的Shell
- • 不污染原先配置的环境
安装及使用Devbox
除了安装Devbox本身之外,你还需要安装 nix
和 docker
,因为Devbox依赖于它们。
curl -fsSL https://get.jetpack.io/devbox | bash
初始化Devbox
代码语言:javascript复制devbox init
这将在当前目录下创建一个 devbox.json文件。你应该把它提交到源码控制里。
从Nix Packages添加命令行工具。例如,要添加Python 3.10:
代码语言:javascript复制devbox add python310
你的 devbox.json文件记录了你所添加的软件包,它现在应该看起来是这样的:
代码语言:javascript复制{
"packages": [
"python310"
]
}
启动一个安装了这些工具的新shell:
代码语言:javascript复制devbox shell
此时可以发现,你是在Devbox shell中(而不是你的普通终端),因为shell的提示和目录已经改变。
这个时候你的任何操作都是在Devbox环境下完成的,与你的本地毫无关系。
如果要退出Devbox shell并返回到你的常规shell:
代码语言:javascript复制exit
构建镜像
代码语言:javascript复制devbox build
生成的镜像名叫 devbox
用一个更具体的名称来标记该镜像:
代码语言:javascript复制docker tag devbox my-image:v0.1