一个轻量级、安全的 Deno 运行时镜像,基于 Alpine Linux 构建,带有 S6 叠加层、全面的权限管理和开发者友好的工具。
 docker pull tundrasoft/deno:latest # 从 GitHub 容器仓库拉取 docker pull ghcr.io/tundrasoft/deno:latest # 运行简单的 Deno 应用 docker run -d \ -p 8080:8080 \ -e FILE=[***] \ --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
| 版本 | 标签 |
|---|---|
| latest | 最新稳定版 |
| edge | 开发版/边缘版本 |
| 2.4 | 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0 |
| 2.3 | 2.3.7, 2.3.6, 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=[***] \ -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 缓存目录 |
此镜像使用 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
有关安全问题,请使用 GitHub 的私有漏洞报告。
现代、安全的 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由 TundraSoft 精心打造 ❤️
在 GitHub 上查看 • Docker Hub • 报告问题
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429