https://github.com/bare-devcontainer/templates/tree/main/src/zig
选项
| 选项 ID |
描述 |
类型 |
默认值 |
imageVariant |
Zig 和 Debian 版本(trixie = Debian 13,bookworm = Debian 12)。也可以输入其他已发布的标签。 |
string |
0.16-trixie |
入门指南
请参阅仓库 README 中的“入门指南”了解如何应用此模板。
镜像变体
imageVariant 选项用于选择 ghcr.io/bare-devcontainer/zig 基础镜像的标签,该镜像将 Zig 版本与 Debian 版本进行配对:trixie 是 Debian 13,bookworm 是 Debian 12。
应用模板时提供的选项仅供参考,并非封闭列表——您可以输入任何已发布的标签,包括更精确的标签(例如 Zig 补丁版本或带有日期的构建版本,以便进行更严格的版本锁定)。请查看已发布的标签以了解当前可用版本。
安全加固
此模板应用了 Bare Dev Container 模板的共享加固默认设置:
- 基于
ghcr.io/bare-devcontainer/zig 构建。这是一个来自 bare-devcontainer/images 的精简镜像,具有锁定的摘要(pinned digests)、SLSA 来源证明以及用于供应链透明度的 SPDX SBOM。
- 以非 root 的
dev 用户身份运行。
- 剥离所有 Linux 权限(
--cap-drop=ALL)并设置 no-new-privileges 安全选项,因此进程无法在容器内部获得提升的权限。如果您需要 su/sudo,请从 securityOpt 中移除 no-new-privileges。
- 启动一个初始化进程(
"init": true)来回收僵尸进程。
应用模板后,我们建议将镜像锁定到特定的摘要(digest),以便每次重新构建都使用您期望的确切镜像——请参阅“将镜像锁定到摘要”。
持久化缓存
Zig 的全局缓存持久化存储在命名卷中,因此重新构建容器以获取镜像更新时,无需重新下载软件包或重新编译依赖项:
| 卷 (Volume) |
挂载路径 (Mount path) |
用途 |
${devcontainerId}-zig-global-cache |
/home/dev/.cache/zig |
Zig 全局缓存 |
编辑器集成
- 安装了
ziglang.vscode-zig VS Code 扩展,预配置了镜像中自带的 zig 和 zls 二进制文件路径,并启用了 Zig 语言服务器 (zls)。
提示
- 要使用调试器,请取消注释
devcontainer.json 中的 "capAdd": ["SYS_PTRACE"]。
- 如果您使用 VS Code,请取消注释
devcontainer.json 中的 remoteEnv 块,以便在 VS Code 标签页中打开 $EDITOR / $VISUAL / $GIT_EDITOR(例如 git commit)。
注意:此文件是由 devcontainer-template.json 自动生成的。请将其他说明添加至 NOTES.md 中。
加入我们
Zig 中文社区是一个开放的组织,我们致力于推广 Zig 在中文群体中的使用,有多种方式可以参与进来:
- 供稿,分享自己使用 Zig 的心得
- 改进 ZigCC 组织下的开源项目
- 加入微信群、QQ 群、QQ 频道、Telegram 群组、Google Groups 与更多 Zig 爱好者交流
选项
imageVariant入门指南
请参阅仓库 README 中的“入门指南”了解如何应用此模板。
镜像变体
imageVariant选项用于选择ghcr.io/bare-devcontainer/zig基础镜像的标签,该镜像将 Zig 版本与 Debian 版本进行配对:trixie是 Debian 13,bookworm是 Debian 12。应用模板时提供的选项仅供参考,并非封闭列表——您可以输入任何已发布的标签,包括更精确的标签(例如 Zig 补丁版本或带有日期的构建版本,以便进行更严格的版本锁定)。请查看已发布的标签以了解当前可用版本。
安全加固
此模板应用了 Bare Dev Container 模板的共享加固默认设置:
ghcr.io/bare-devcontainer/zig构建。这是一个来自bare-devcontainer/images的精简镜像,具有锁定的摘要(pinned digests)、SLSA 来源证明以及用于供应链透明度的 SPDX SBOM。dev用户身份运行。--cap-drop=ALL)并设置no-new-privileges安全选项,因此进程无法在容器内部获得提升的权限。如果您需要su/sudo,请从securityOpt中移除no-new-privileges。"init": true)来回收僵尸进程。应用模板后,我们建议将镜像锁定到特定的摘要(digest),以便每次重新构建都使用您期望的确切镜像——请参阅“将镜像锁定到摘要”。
持久化缓存
Zig 的全局缓存持久化存储在命名卷中,因此重新构建容器以获取镜像更新时,无需重新下载软件包或重新编译依赖项:
${devcontainerId}-zig-global-cache/home/dev/.cache/zig编辑器集成
ziglang.vscode-zigVS Code 扩展,预配置了镜像中自带的zig和zls二进制文件路径,并启用了 Zig 语言服务器 (zls)。提示
devcontainer.json中的"capAdd": ["SYS_PTRACE"]。devcontainer.json中的remoteEnv块,以便在 VS Code 标签页中打开$EDITOR/$VISUAL/$GIT_EDITOR(例如git commit)。注意:此文件是由
devcontainer-template.json自动生成的。请将其他说明添加至NOTES.md中。加入我们
Zig 中文社区是一个开放的组织,我们致力于推广 Zig 在中文群体中的使用,有多种方式可以参与进来: