
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Ruby Serverless Runtime 是一个专为 Ruby 应用设计的轻量级 Serverless 运行时环境。该镜像提供了 Ruby 代码在无服务器架构(Serverless)中执行所需的完整运行时支持,包括函数加载、事件处理、资源管理等核心能力。主要用途是作为 Ruby 语言 Serverless 函数(如 AWS Lambda、Azure Functions、Google Cloud Functions 等)的本地开发、测试及部署载体,简化 Serverless 应用的开发与运维流程。
Gemfile 并安装依赖(支持 bundle install 自动执行)。通过 Docker Hub 或私有仓库拉取镜像:
bashdocker pull docker.xuanyuan.run/ruby-serverless-runtime:latest # 最新版本(默认 Ruby 3.2) # 或指定 Ruby 版本(如 3.0) docker pull docker.xuanyuan.run/ruby-serverless-runtime:3.0
docker run 命令)4.2.1 本地函数执行示例
假设本地函数代码目录为 ./my-ruby-function,结构如下:
my-ruby-function/ ├── Gemfile # 依赖定义 └── handler.rb # 函数代码,含入口方法 `handler`
handler.rb 示例代码:
rubydef handler(event:, context:) { statusCode: 200, body: "Hello from Ruby Serverless! Event: #{event.inspect}" } end
启动容器执行函数:
bashdocker run -it --rm \ -v $(pwd)/my-ruby-function:/task \ # 挂载本地代码到容器内 /task 目录 -e FUNCTION_HANDLER=handler.handler \ # 指定函数入口(文件名.方法名) -e RUBY_VERSION=3.2 \ # 可选,指定 Ruby 版本(默认 3.2) -e LOG_LEVEL=INFO \ # 日志级别(默认 INFO) ruby-serverless-runtime:latest
4.2.2 HTTP 触发器模式
通过环境变量 TRIGGER=HTTP 启用 HTTP 触发器,暴露端口 8080 接收 HTTP 请求:
bashdocker run -it --rm \ -v $(pwd)/my-ruby-function:/task \ -e FUNCTION_HANDLER=handler.handler \ -e TRIGGER=HTTP \ -p 8080:8080 \ # 映射容器 8080 端口到本地 ruby-serverless-runtime:latest
启动后可通过 curl http://localhost:8080 触发函数。
创建 docker-compose.yml:
yamlversion: '3.8' services: ruby-serverless: image: docker.xuanyuan.run/ruby-serverless-runtime:3.2 volumes: - ./my-ruby-function:/task # 挂载本地代码 environment: - FUNCTION_HANDLER=handler.handler # 函数入口 - TRIGGER=HTTP # 启用 HTTP 触发器 - LOG_LEVEL=DEBUG # 调试模式日志 - RUBYOPT=-W0 # Ruby 运行参数(禁用警告) ports: - "8080:8080" # HTTP 端口映射 restart: unless-stopped # 开发环境自动重启
启动服务:
bashdocker-compose up -d
4.4.1 核心环境变量
| 变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
FUNCTION_HANDLER | 函数入口(格式:文件名.方法名) | handler.handler | index.run |
RUBY_VERSION | 指定 Ruby 版本(需镜像支持) | 3.2 | 2.7, 3.1 |
TRIGGER | 触发器类型(EVENT/HTTP/QUEUE) | EVENT | HTTP |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO | DEBUG |
TIMEOUT | 函数超时时间(秒) | 3 | 10 |
BUNDLE_INSTALL | 是否自动安装依赖(true/false) | true | false(生产环境) |
4.4.2 卷挂载
/task 目录(运行时自动加载该目录下代码)。/.bundle 目录到本地(缓存 bundle install 结果,加速启动):
bashdocker run -v $(pwd)/.bundle:/.bundle ...
4.4.3 网络配置
-p 8080:8080)。--network 加入现有网络:
bashdocker run --network my-network ... # 加入名为 my-network 的网络
3.2.2),而非 latest,避免版本变更风险。Gemfile 变更后需重启容器(开发模式下可启用 BUNDLE_AUTO_UPDATE=true 自动更新依赖)。--memory 和 --cpus 限制资源(模拟云端函数资源配额):
bashdocker run --memory=128m --cpus=0.5 ... # 限制 128MB 内存、0.5 CPU 核心
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 openruntimes/ruby 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: