openruntimes/denoDeno Serverless Runtime是一个基于Deno运行时的无服务器环境镜像,专为快速部署和运行JavaScript/TypeScript无服务器应用设计。该镜像整合了Deno的安全特性与无服务器架构的灵活性,可作为轻量级执行环境用于开发、测试和生产环境中的无服务器函数及微服务。
--allow-net网络访问、--allow-read文件读取等)bash# 运行当前目录下的index.ts作为入口函数 docker run -d \ -v $(pwd)/index.ts:/app/index.ts \ -e DENO_ENTRY=/app/index.ts \ -e DENO_PERMISSIONS="--allow-net=0.0.0.0:8080" \ -p 8080:8080 \ deno-serverless-runtime
typescript// 简单HTTP服务示例 import { serve } from "[***]"; serve((req) => { return new Response("Hello from Deno Serverless Runtime!", { status: 200, headers: { "content-type": "text/plain" }, }); }, { port: 8080 });
yamlversion: '3.8' services: deno-function: image: deno-serverless-runtime volumes: - ./functions:/app/functions # 挂载函数目录 environment: - DENO_ENTRY=/app/functions/main.ts # 指定入口文件 - DENO_PERMISSIONS="--allow-net --allow-read=/app/data" # 权限配置 - PORT=3000 # 服务端口 ports: - "3000:3000" restart: unless-stopped
| 环境变量 | 说明 | 默认值 |
|---|---|---|
DENO_ENTRY | 函数入口文件路径(容器内绝对路径) | /app/index.ts |
DENO_PERMISSIONS | Deno执行权限参数(如--allow-net --allow-env),多个权限空格分隔 | --allow-none |
PORT | 服务监听端口(若函数为HTTP服务) | 8080 |
DENO_VERSION | 指定Deno版本(需镜像支持的版本标签) | latest |
LOG_LEVEL | 日志级别(debug/info/warn/error) | info |
Deno默认禁用所有系统访问权限,需通过DENO_PERMISSIONS显式配置:
| 常用权限参数 | 说明 |
|---|---|
--allow-net | 允许网络访问(可指定域名/IP,如--allow-net=example.com) |
--allow-read | 允许文件读取(可指定路径,如--allow-read=/app/data) |
--allow-write | 允许文件写入 |
--allow-env | 允许访问环境变量 |
--allow-run | 允许执行子进程 |
--allow-all | 允许所有权限(生产环境不推荐) |
如需覆盖默认启动命令,可通过docker run的command参数指定:
bashdocker run -v $(pwd):/app deno-serverless-runtime deno run --allow-net /app/custom-entry.ts
为加速部署,可挂载Deno缓存目录:
bashdocker run -v $(pwd):/app -v deno-cache:/root/.cache/deno deno-serverless-runtime
deno-serverless-runtime:1.37.0)manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务