6.6k star!推荐一款轻松创建隔离环境的命令行及容器工具!

2023-12-16 16:55:31 浏览数 (2)

本文小编向大家推荐一款可轻松创建隔离的 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本身之外,你还需要安装 nixdocker,因为Devbox依赖于它们。

代码语言:javascript复制
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

0 人点赞