1
1
# Devbox 📦
2
2
3
- ### 即时、简单、可预测地创建Shell与Container
3
+ ### 即时、简单、可预测地创建 Shell 与 Container
4
4
5
- [ ![ Join Discord] ( https://img.shields.io/discord/903306922852245526?color=7389D8&label=discord&logo=discord&logoColor=ffffff )] ( https://discord.gg/jetify ) ![ License: Apache 2.0] ( https://img.shields.io/github/license/jetify-com/devbox ) [ ![ version] ( https://img.shields.io/github/v/release/jetify-com/devbox?color=green&label=version&sort=semver )] ( https://github.com/jetify-com/devbox/releases ) [ ![ tests] ( https://github.com/jetify-com/devbox/actions/workflows/tests.yaml /badge.svg )] ( https://github.com/jetify-com/devbox/actions/workflows/tests.yaml )
5
+ [ ![ Join Discord] ( https://img.shields.io/discord/903306922852245526?color=7389D8&label=discord&logo=discord&logoColor=ffffff )] ( https://discord.gg/jetify ) ![ License: Apache 2.0] ( https://img.shields.io/github/license/jetify-com/devbox ) [ ![ version] ( https://img.shields.io/github/v/release/jetify-com/devbox?color=green&label=version&sort=semver )] ( https://github.com/jetify-com/devbox/releases ) [ ![ tests] ( https://github.com/jetify-com/devbox/actions/workflows/cli-post-release.yml /badge.svg )] ( https://github.com/jetify-com/devbox/actions/workflows/cli-release.yml?branch=main ) [ ![ Built with Devbox ] ( https://www.jetify.com/img/devbox/shield_galaxy.svg )] ( https://www.jetify.com/devbox/docs/contributor-quickstart/ )
6
6
7
7
---
8
8
9
9
## 它是什么?
10
10
11
- Devbox是一个可以让你轻松地创建隔离环境的shell与container的命令行工具 。首先定义你开发环境中所需的软件包列表,随后Devbox使用该定义来为你的应用程序创建一个隔离的环境 。
11
+ [ Devbox ] ( https://www.jetify.com/devbox/ ) 是一个可以让你轻松地创建隔离环境的 shell 与 container 的命令行工具 。首先定义你开发环境中所需的软件包列表,随后 Devbox 使用该定义来为你的应用程序创建一个隔离的环境 。
12
12
13
- 在实践中,Devbox的工作方式类似于像 ` yarn ` 这样的软件包管理器-- 只不过它所管理的软件包是操作系统级别的。(这些包你通常会通过` brew ` 和 ` apt-get ` 来进行安装)。
13
+ 在实践中,Devbox 的工作方式类似于像 ` yarn ` 这样的软件包管理器—— 只不过它所管理的软件包是操作系统级别的。(这些包你通常会通过 ` brew ` 和 ` apt-get ` 来进行安装)。使用 Devbox,你可以从 Nix 软件包注册表中安装超过 [ 400,000 个软件包版本 ] ( (https://www.nixhub.io) ) 。
14
14
15
- Devbox最初由[ Jetify] ( https://www.jetify.com ) 进行开发,其内部由` nix ` 驱动。
15
+ Devbox最初由 [ Jetify] ( https://www.jetify.com ) 进行开发,其内部由 ` nix ` 驱动。
16
16
17
17
## 示例
18
- 下面的例子创建了一个带有` python 2.7 ` 和` go 1.18 ` 的开发环境,尽管这些包并没有在底层机器中被安装。
19
18
20
- ![ screen cast ] ( https://user-images.githubusercontent.com/279789/186491771-6b910175-18ec-4c65-92b0-ed1a91bb15ed.svg )
19
+ 你可以点击下面的按钮在浏览器中试用 Devbox:
21
20
21
+ [ ![ Open In Devbox.sh] ( https://www.jetify.com/img/devbox/open-in-devbox.svg )] ( https://devbox.sh/new )
22
22
23
- ## 好处
23
+ 下面的例子创建了一个带有 ` python 2.7 ` 和 ` go 1.18 ` 的开发环境,尽管这些包并没有在底层机器中被安装。
24
24
25
- ### 为团队中的每一个人提供一个统一的Shell
25
+ ![ screen cast ] ( https://user-images.githubusercontent.com/279789/186491771-6b910175-18ec-4c65-92b0-ed1a91bb15ed.svg )
26
26
27
- 通过 ` devbox.json ` 文件来声明项目中所需要的工具列表,并运行 ` devbox shell ` 。这样,参与项目工作的每一个人都会获得一个与这些工具完全版本的shell环境。
27
+ ## 安装 Devbox
28
28
29
- ### 尝试新工具而不污染原先配置的环境
29
+ 使用以下安装脚本获取最新版本的 Devbox:
30
30
31
- 由Devbox创建的开发环境与你的笔记本电脑中的其他东西是隔离的。有什么工具你想尝试,却又不想把环境弄得一团糟?可以把这个工具添加到Devbox的shell中,而当你不再需要它的时候,就可以把它删除--同时保持你的笔记本电脑始终是原始的状态。
31
+ ``` sh
32
+ curl -fsSL https://get.jetify.com/devbox | bash
33
+ ```
32
34
33
- ### 不以牺牲速度为代价
34
-
35
- Devbox可以在你的笔记本电脑上直接创建隔离环境,而不需要额外的虚拟化以至于使得你的文件系统或每个命令都变得缓慢。当你准备打包时,就可以把它变成一个等效的container。
35
+ 在 [ Devbox 文档] ( https://www.jetify.com/devbox/docs/installing_devbox/ ) 中阅读更多内容。
36
36
37
- ### 同版本冲突说再见
37
+ ## 好处
38
38
39
- 你是否正在处理多个项目,而所有这些项目都需要同一个二进制文件的不同版本?与其尝试在你的笔记本电脑上安装同一二进制文件的冲突版本,不如为每个项目创建一个隔离环境,并为每个项目使用你想要的任何版本。
39
+ ### 为团队中的每一个人提供一个统一的 Shell
40
40
41
- ### 瞬间将你的应用程序变成一个容器
41
+ 通过 ` devbox.json ` 文件来声明项目中所需要的工具列表,并运行 ` devbox shell ` 。这样,参与项目工作的每一个人都会获得一个与这些工具完全版本的 shell 环境。
42
42
43
- Devbox分析你的源代码并立即将其转化为可以部署到任何云中、并符合OCI标准的镜像。该镜像在速度、大小、安全和缓存方面都进行了优化......而且不需要编写 ` Dockerfile ` 。而且与 [ buildpacks ] ( https://buildpacks.io/ ) 不同的是,devbox处理起来更快。
43
+ ### 尝试新工具而不污染原先配置的环境
44
44
45
- ### 不要再重复声明依赖关系
45
+ 由 Devbox 创建的开发环境与你的笔记本电脑中的其他东西是隔离的。有什么工具你想尝试,却又不想把环境弄得一团糟?可以把这个工具添加到 Devbox 的 shell 中,而当你不再需要它的时候,就可以把它删除——同时保持你的笔记本电脑始终是原始的状态。
46
46
47
- 当你在笔记本电脑上开发时,以及当你把它打包成一个容器准备部署到云端时,你的应用程序往往需要相同的依赖关系集。Devbox的开发环境是同构的:这意味着我们可以把它们变成本地的Shell环境或云端的container,所有这些都不需要重复完成。
47
+ ### 不以牺牲速度为代价
48
48
49
- ## 安装Devbox
49
+ Devbox可以在你的笔记本电脑上直接创建隔离环境,而不需要额外的虚拟化以至于使得你的文件系统或每个命令都变得缓慢。当你准备打包时,就可以把它变成等效的 container。
50
50
51
- 除了安装Devbox本身之外,你还需要安装 ` nix ` 和 ` docker ` ,因为Devbox依赖于它们。
51
+ ### 同版本冲突说再见
52
52
53
- 1 . 安装 [ Nix Package Manager ] ( https://nixos.org/download.html ) 。(别担心,你不需要学习Nix。)
53
+ 你是否正在处理多个项目,而所有这些项目都需要同一个二进制文件的不同版本?与其尝试在你的笔记本电脑上安装同一个二进制文件的冲突版本,不如为每个项目创建一个隔离环境,并为每个项目使用你想要的任何版本。
54
54
55
- 2 . 安装 [ Docker Engine ] ( https://docs.docker.com/engine/install/ ) 或 [ Docker Desktop ] ( https://www.docker.com/get-started/ ) 。注意,只有当你想创建容器时才需要docker--如果没有它,shell功能也能工作。
55
+ ### 随身携带你的开发环境
56
56
57
- 3 . 安装Devbox:
57
+ Devbox 的开发环境是 * 可移植的 * 。我们使您能够只声明一次环境,并以多种不同方式使用这个单一定义,包括:
58
58
59
- ``` sh
60
- curl -fsSL https://get.jetify.com/devbox | bash
61
- ```
59
+ + 通过 ` devbox shell ` 创建的本地 shell
60
+ + 可在 VSCode 中使用的开发容器
61
+ + 一个 Dockerfile,这样你可以用与你开发时使用的完全相同的工具构建生产镜像
62
+ + 在云端的远程开发环境,该环境与本地环境完全一致
62
63
63
- ## 快速入门:快速又确定的shell
64
+ ## 快速入门:快速又确定的 shell
64
65
65
- 在这个快速入门中,我们将创建一个安装了特定工具的开发shell。这些工具只有在使用这个Devbox shell时才能使用 ,以确保我们不会污染你的机器。
66
+ 在这个快速入门中,我们将创建一个安装了特定工具的开发 shell。这些工具只有在使用这个 Devbox shell 时才能使用 ,以确保我们不会污染你的机器。
66
67
67
68
1 . 在一个新的空文件夹中打开一个终端。
68
69
69
- 2 . 初始化Devbox :
70
+ 2 . 初始化 Devbox :
70
71
71
72
``` bash
72
73
devbox init
73
74
```
74
75
75
- 这将在当前目录下创建一个` devbox.json ` 文件。你应该把它提交到源码控制里。
76
+ 这将在当前目录下创建一个 ` devbox.json ` 文件。你应该把它提交到源码控制里。
76
77
77
- 3 . 从[ Nix Packages ] ( https://search.nixos.org/packages ) 添加命令行工具。例如,要添加Python 3.10:
78
+ 3 . 从 [ Nix] ( https://search.nixos.org/packages ) 添加命令行工具。例如,要添加Python 3.10:
78
79
79
80
``` bash
80
81
devbox add python310
81
82
```
82
- 4 . 你的` devbox.json ` 文件记录了你所添加的软件包,它现在应该看起来是这样的:
83
+
84
+ 在 [ Nixhub.io] ( https://www.nixhub.io ) 上搜索更多软件包。
85
+
86
+ 4 . 你的 ` devbox.json ` 文件记录了你所添加的软件包,它现在应该看起来是这样的:
83
87
84
88
``` json
85
89
{
@@ -95,11 +99,11 @@ Devbox分析你的源代码并立即将其转化为可以部署到任何云中
95
99
devbox shell
96
100
```
97
101
98
- 你可以看出你是在Devbox shell中 (而不是你的普通终端),因为shell的提示和目录已经改变 。
102
+ 你可以看出你是在 Devbox shell 中 (而不是你的普通终端),因为 shell 的提示和目录已经改变 。
99
103
100
104
6 . 使用你喜欢的工具。
101
105
102
- In this example we installed Python 3.10, so let’s use it.
106
+ 在这个例子中,我们安装了 Python 3.10,所以让我们使用它吧。
103
107
104
108
``` bash
105
109
python --version
@@ -111,55 +115,40 @@ Devbox分析你的源代码并立即将其转化为可以部署到任何云中
111
115
git config --get user.name
112
116
```
113
117
114
- 8 . 要退出Devbox shell并返回到你的常规shell :
118
+ 8 . 要退出 Devbox shell 并返回到你的常规 shell :
115
119
116
120
``` bash
117
121
exit
118
122
```
119
123
120
- ## 快速入门:迅速的Docker镜像
121
-
122
- Devbox使得将你的应用程序打包成一个符合OCI标准的容器镜像变得很容易。Devbox会分析你的代码,自动识别你的项目所需的正确工具链,并将其构建为一个docker镜像。
124
+ 在 [ Devbox 文档快速入门] ( https://www.jetify.com/devbox/docs/quickstart/ ) 中阅读更多内容。
123
125
124
- 1 . 使用` devbox init ` 来初始化你的项目,如果还未初始化的话。
125
-
126
- 2 . 构建镜像:
127
-
128
- ``` bash
129
- devbox build
130
- ```
126
+ ## 额外命令
131
127
132
- 生成的镜像名叫 ` devbox ` .
128
+ ` devbox help ` ,用来查看所有的命令。
133
129
134
- 3 . 用一个更具体的名称来标记该镜像:
130
+ 请参阅 [ CLI 参考 ] ( https://www.jetify.com/devbox/docs/cli_reference/devbox/ ) 以获取完整的命令列表。
135
131
136
- ``` bash
137
- docker tag devbox my-image:v0.1
138
- ```
139
- ### 自动检测的语言
140
- Devbox目前支持检测以下两种语言:
141
-
142
- - Go
143
- - Python (Poetry)
132
+ ## 加入我们的开发者社区
144
133
145
- 想要支持更多的语言?[ Ask for a new Language] ( https://github.com/jetify-com/devbox/issues ) 或通过Pull Request贡献一个。
134
+ + 通过加入 [ Jetify Discord Server] ( https://discord.gg/jetify ) 来与我们聊天——我们有一个 #devbox 频道专门用于这个项目。
135
+ + 使用 [ Github Issues] ( https://github.com/jetify-com/devbox/issues ) 提交错误报告和功能请求。
136
+ + 在 [ Jetify’s Twitter] ( https://twitter.com/jetify_com ) 上关注我们的产品更新。
146
137
147
- ## 额外命令
138
+ ## 贡献
148
139
149
- ` devbox help ` - 用来查看所有的命令
140
+ Devbox 是一个开源项目,所以欢迎贡献。在提交拉取请求之前,请阅读 [ 我们的贡献指南 ] ( ../../CONTRIBUTING.md ) 。
150
141
151
- ` devbox plan ` - 用来查看Devbox在生成container时的配置与步骤
142
+ [ Devbox 开发 README ] ( ../../devbox.md )
152
143
153
- ## 加入我们的开发者社区
144
+ ## 相关工作
154
145
155
- + 通过加入[ Jetify Discord Server] ( https://discord.gg/jetify ) 来与我们聊天 - 我们有一个#devbox频道专门用于这个项目。
156
- + 使用[ Github Issues] ( https://github.com/jetify-com/devbox/issues ) 提交错误报告和功能请求。
157
- + 在[ Jetify’s Twitter] ( https://twitter.com/jetify_com ) 上关注我们的产品更新。
146
+ 感谢 [ Nix] ( https://nixos.org/ ) 所提供的独立的shell。
158
147
159
- ## 相关工作
148
+ ## 翻译
160
149
161
- 感谢 [ Nix ] ( https://nixos.org/ ) 所提供的独立的shell。
150
+ + [ 韩文 ] ( README-ko-KR.md )
162
151
163
- ## License
152
+ ## 许可证
164
153
165
- 本项目在[ Apache 2.0 License] ( https://github.com/jetify-com/devbox/blob/main/LICENSE ) 下自豪地开放源代码。
154
+ 本项目在 [ Apache 2.0 License] ( https://github.com/jetify-com/devbox/blob/main/LICENSE ) 下自豪地开放源代码。
0 commit comments