
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
一个轻量级、安全的 Deno 运行时镜像,基于 Alpine Linux 构建,带有 S6 叠加层、全面的权限管理和开发者友好的工具。
此镜像可在多个仓库获取:
tundrasoft/denoghcr.io/tundrasoft/denobash# 从 Docker Hub 拉取(推荐) docker pull tundrasoft/deno:latest # 从 GitHub 容器仓库拉取 docker pull ghcr.io/tundrasoft/deno:latest # 运行简单的 Deno 应用 docker run -d \ -p 8080:8080 \ -e FILE=https://deno.land/std/examples/chat/server.ts \ --name deno-app \ tundrasoft/deno:latest # 使用自定义时区和权限运行 docker run -d \ -e TZ=Asia/Shanghai \ -e ALLOW_NET=1 \ -e ALLOW_READ=1 \ -v $(pwd):/app \ --name my-deno-app \ tundrasoft/deno:latest
| 版本 | 标签 |
|---|---|
| https://hub.docker.com/r/tundrasoft/deno/tags?name=latest | 最新稳定版 |
| https://hub.docker.com/r/tundrasoft/deno/tags?name=edge | 开发版/边缘版本 |
| https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4 | https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.5, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.4, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.3, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.2, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.1, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.4.0 |
| https://hub.docker.com/r/tundrasoft/deno/tags?name=2.3 | https://hub.docker.com/r/tundrasoft/deno/tags?name=2.3.7, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.3.6, https://hub.docker.com/r/tundrasoft/deno/tags?name=2.3.5 |
tundra(UID/GID: 1000)在 Dockerfile 中用作基础镜像:
dockerfile# 从 Docker Hub FROM tundrasoft/deno:latest # 此处添加您的 Deno 应用设置 COPY . /app
dockerfile# 从 GitHub 容器仓库 FROM ghcr.io/tundrasoft/deno:latest # 此处添加您的 Deno 应用设置 COPY . /app
对于特定版本:
dockerfileFROM tundrasoft/deno:2.1.4 # 或使用特定 Alpine 版本 FROM tundrasoft/deno:alpine-3.20-2.1.4
运行远程脚本:
bashdocker run -p 8080:8080 \ -e FILE=https://deno.land/std/examples/chat/server.ts \ -e ALLOW_NET=1 \ tundrasoft/deno:latest
使用 Deno 任务运行:
bashdocker run -v $(pwd):/app \ -e TASK=start \ -e ALLOW_ALL=1 \ tundrasoft/deno:latest
运行本地应用:
bashdocker run -v $(pwd):/app \ -e FILE=/app/main.ts \ -e ALLOW_NET=api.example.com \ -e ALLOW_READ=/app \ tundrasoft/deno:latest
| 变量 | 描述 | 默认值 |
|---|---|---|
DENO_DIR | 缓存项存储目录 | /deno-dir |
TASK | 运行 deno.json 中的任务(忽略权限标志) | N/A |
FILE | 使用权限标志运行的文件 | N/A |
PUID | tundra 用户的用户 ID | 1000 |
PGID | tundra 组的组 ID | 1000 |
TZ | 时区(例如 Asia/Shanghai、America/New_York) | UTC |
这些环境变量控制 Deno 运行时权限(仅在 FILE 模式下使用):
| 变量 | 描述 | 默认值 |
|---|---|---|
ALLOW_ALL | 启用所有权限 (-A 或 --allow-all) | N/A |
ALLOW_HRTIME | 允许高分辨率时间测量 | N/A |
ALLOW_SYS | 允许系统信息访问 | N/A |
ALLOW_ENV | 允许环境变量访问 | N/A |
ALLOW_NET | 网络访问(1 表示全部,或指定域名) | 1 |
ALLOW_READ | 文件系统读取访问(1 表示全部,或指定路径) | N/A |
ALLOW_WRITE | 文件系统写入访问(1 表示全部,或指定路径) | N/A |
ALLOW_RUN | 命令执行(1 表示全部,或命令 CSV 列表) | N/A |
UNSTABLE | 启用不稳定 API(特定功能:ffi、cron 等) | 0 |
📚 参考: Deno 权限文档
| 路径 | 描述 |
|---|---|
/app | 应用根目录(建议挂载为卷) |
/crons | cron 任务文件目录(自动加载) |
/deno-dir | Deno 缓存目录 |
此镜像使用 https://github.com/just-containers/s6-overlay 进行高级进程管理和服务管理。
S6 通过触发点提供依赖管理:
| 触发器 | 描述 |
|---|---|
os-ready | 容器启动,基本设置完成 |
config-start | 开始配置更改 |
config-ready | 配置完成 |
service-start | 开始服务初始化 |
service-ready | 所有服务初始化完成 |
| 服务 | 用途 | 依赖项 |
|---|---|---|
config-deno | 准备 Deno 环境和目录 | config-start |
deno | 启动 Deno 应用 | config-deno、service-start |
crond | 启动 cron 守护进程 | service-start、config-cron |
内置健康检查每 30 秒运行一次:
dockerfileHEALTHCHECK --interval=30s --timeout=5s --start-period=30s CMD /usr/bin/healthcheck.sh
bashdocker build \ --build-arg ALPINE_VERSION=3.20 \ --build-arg DENO_VERSION=2.1.4 \ -t my-deno-image .
| 参数 | 描述 | 示例 |
|---|---|---|
DENO_VERSION | Deno 运行时版本 | 2.1.4 |
ALPINE_VERSION | Alpine Linux 版本 | 3.20 |
此仓库实施全面的安全扫描和最佳实践:
tundra 用户(UID/GID 1000)运行容器运行时安全:
bash# 使用只读根文件系统运行 docker run --read-only --tmpfs /tmp --tmpfs /run tundrasoft/deno:latest # 使用特定用户并删除功能 docker run --user 1000:1000 --cap-drop=ALL tundrasoft/deno:latest # 限制资源 docker run --memory=512m --cpus=1 --pids-limit=100 tundrasoft/deno:latest # 限制网络访问到特定域名 docker run -e ALLOW_NET=api.example.com,cdn.jsdelivr.net tundrasoft/deno:latest
文件系统安全:
bash# 将应用文件挂载为只读 docker run -v $(pwd):/app:ro tundrasoft/deno:latest # 使用特定的读写权限 docker run -e ALLOW_READ=/app,/etc/ssl -e ALLOW_WRITE=/tmp tundrasoft/deno:latest # 安全挂载密钥 docker run -v /host/secrets:/secrets:ro,Z -e ALLOW_READ=/secrets tundrasoft/deno:latest
生产环境部署:
bash# 始终使用特定版本标签 docker run tundrasoft/deno:2.1.4 # 而非 'latest' # 使用自定义网络 docker network create --driver bridge secure-app-net docker run --network secure-app-net tundrasoft/deno:2.1.4 # 启用日志记录 docker run --log-driver=json-file --log-opt max-size=10m tundrasoft/deno:2.1.4
有关安全问题,请使用 https://github.com/TundraSoft/deno/security/advisories/new%E3%80%82
现代、安全的 JavaScript 和 TypeScript 运行时,基于 V8 和 Rust 构建。提供:
轻量级、注重安全的 Linux 发行版,占用空间小。
用于容器的高级初始化系统和进程管理器。提供:
完整的 cron 守护进程,支持动态任务加载和环境变量替换。
GNU gettext 工具,用于配置文件中的环境变量替换。
完整的时区数据库,通过 TZ 环境变量轻松配置。
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-feature由 https://github.com/TundraSoft 精心打造 ❤️
https://github.com/TundraSoft/deno • https://hub.docker.com/r/tundrasoft/deno • https://github.com/TundraSoft/deno/issues
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务