如果你使用 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 2.2,作为构建Ruby 2.2应用程序的https://github.com/openshift/source-to-image%E5%9F%BA%E7%A1%80%E9%95%9C%E5%83%8F%E3%80%82%E7%94%A8%E6%88%B7%E5%8F%AF%E9%80%89%E6%8B%A9%E5%9F%BA%E4%BA%8E%E7%BA%A2%E5%B8%BD%E4%BC%81%E4%B8%9ALinux%EF%BC%88RHEL%EF%BC%89%E6%88%96CentOS%E7%9A%84%E6%9E%84%E5%BB%BA%E5%99%A8%E9%95%9C%E5%83%8F%EF%BC%9ARHEL%E9%95%9C%E5%83%8F%E5%8F%AF%E5%9C%A8%E7%BA%A2%E5%B8%BD%E5%AE%B9%E5%99%A8%E7%9B%AE%E5%BD%95%E8%8E%B7%E5%8F%96%EF%BC%8C%E9%95%9C%E5%83%8F%E5%90%8D%E4%B8%BA%60registry.access.redhat.com/rhscl/ruby-22-rhel7%60%EF%BC%9BCentOS%E9%95%9C%E5%83%8F%E5%8F%AF%E5%9C%A8https://hub.docker.com/r/centos/ruby-22-centos7/%E8%8E%B7%E5%8F%96%EF%BC%8C%E9%95%9C%E5%83%8F%E5%90%8D%E4%B8%BA%60centos/ruby-22-centos7%60%E3%80%82%E7%94%9F%E6%88%90%E7%9A%84%E9%95%9C%E5%83%8F%E5%8F%AF%E4%BD%BF%E7%94%A8http://docker.io%E8%BF%90%E8%A1%8C%E3%80%82
Ruby 2.2容器镜像是构建和运行各种Ruby 2.2应用程序及框架的基础平台。Ruby是一种解释型脚本语言,适用于快速简便的面向对象编程,具有处理文本文件和执行系统管理任务的多种功能(类似Perl),其特点是简单、直观且可扩展。
要使用独立的https://github.com/openshift/source-to-image%E6%9E%84%E5%BB%BA%E7%AE%80%E5%8D%95%E7%9A%84https://github.com/sclorg/s2i-ruby-container/tree/master/2.2/test/puma-test-app%E5%BA%94%E7%94%A8%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87http://docker.io%E8%BF%90%E8%A1%8C%E7%94%9F%E6%88%90%E7%9A%84%E9%95%9C%E5%83%8F%EF%BC%8C%E8%AF%B7%E6%89%A7%E8%A1%8C%E4%BB%A5%E4%B8%8B%E6%AD%A5%E9%AA%A4%EF%BC%9A
bash$ s2i build https://github.com/sclorg/s2i-ruby-container.git --context-dir=2.2/test/puma-test-app/ rhscl/ruby-22-rhel7 ruby-sample-app $ docker run -p 8080:8080 ruby-sample-app
bash$ s2i build https://github.com/sclorg/s2i-ruby-container.git --context-dir=2.2/test/puma-test-app/ centos/ruby-22-centos7 ruby-sample-app $ docker run -p 8080:8080 ruby-sample-app
bash$ curl 127.0.0.1:8080
可在源代码仓库的.sti/environment文件中以键值对形式设置以下环境变量:
RACK_ENV
指定Ruby应用的部署环境(除非被覆盖),可选值:production(生产)、development(开发)、test(测试)。不同环境在日志详细程度、错误页面、Ruby gem安装等方面有不同行为。
注意:仅当RACK_ENV设为production时,才会编译应用资产。
DISABLE_ASSET_COMPILATION
设为true时,将跳过资产编译过程。由于资产编译仅在生产环境中进行,因此该变量仅在RACK_ENV=production时生效,适用于资产已预先编译的场景。
PUMA_MIN_THREADS、PUMA_MAX_THREADS
这两个变量指定https://github.com/puma/puma%E7%BA%BF%E7%A8%8B%E6%B1%A0%E7%9A%84%E6%9C%80%E5%B0%8F%E5%92%8C%E6%9C%80%E5%A4%A7%E7%BA%BF%E7%A8%8B%E6%95%B0%E3%80%82
PUMA_WORKERS
指定启动的工作进程数。详见Puma的https://github.com/puma/puma#clustered-mode%E6%96%87%E6%A1%A3%E3%80%82
RUBYGEM_MIRROR
设置自定义RubyGems镜像URL,用于在构建过程中下载所需的gem包。
要动态获取运行中容器内源代码的变更,需执行以下步骤:
通过Docker的-e参数传递RAILS_ENV=development环境变量,运行构建后的Rails镜像:
bash$ docker run -e RAILS_ENV=development -p 8080:8080 rails-app
应用需使用能在源代码变更时重新加载服务器的gem,推荐以下gem:
需修改https://github.com/openshift/source-to-image#anatomy-of-a-builder-image%EF%BC%8C%E7%A1%AE%E4%BF%9DWeb%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%94%B1%E6%89%80%E9%80%89gem%E5%90%AF%E5%8A%A8%E4%BB%A5%E6%A3%80%E6%B5%8B%E6%BA%90%E4%BB%A3%E7%A0%81%E5%8F%98%E6%9B%B4%E3%80%82%E6%9E%84%E5%BB%BA%E5%BA%94%E7%94%A8%E9%95%9C%E5%83%8F%E5%90%8E%EF%BC%8C%E9%80%9A%E8%BF%87Docker%E7%9A%84%60-e%60%E5%8F%82%E6%95%B0%E4%BC%A0%E9%80%92%60RACK_ENV=development%60%EF%BC%9A
bash$ docker run -e RACK_ENV=development -p 8080:8080 sinatra-app
使用Docker的exec命令进入容器:
bashdocker exec -it <容器ID> /bin/bash
进入容器后,当前目录为/opt/app-root/src,即源代码所在位置。
可通过PUMA_MIN_THREADS和PUMA_MAX_THREADS环境变量调整每个工作进程的线程数。工作进程数默认由容器可用CPU核心数决定(遵循https://github.com/puma/puma%E6%96%87%E6%A1%A3%E6%8E%A8%E8%8D%90%EF%BC%89%EF%BC%8C%E9%80%9A%E8%BF%87cgroup%E7%9A%84cpusets%E5%AD%90%E7%B3%BB%E7%BB%9F%E6%A3%80%E6%B5%8B%E3%80%82%E5%8F%AF%E9%80%9A%E8%BF%87%60--cpuset-cpus%60%E5%8F%82%E6%95%B0%E6%8C%87%E5%AE%9A%E5%AE%B9%E5%99%A8%E5%85%81%E8%AE%B8%E4%BD%BF%E7%94%A8%E7%9A%84CPU%E6%A0%B8%E5%BF%83%EF%BC%9A
bash$ docker run -e PUMA_MAX_THREADS=32 --cpuset-cpus='0-2,3,5' -p 8080:8080 sinatra-app
工作进程数还受内存限制影响。基础镜像假设每个工作进程需50 MiB基础内存+15 MiB,每个线程需128 KiB。总内存需求公式为:
50 + 15 * 工作进程数 + 0.125 * 工作进程数 * PUMA_MAX_THREADS
可通过--memory参数指定内存限制:
bash$ docker run -e PUMA_MAX_THREADS=32 --memory=300m -p 8080:8080 sinatra-app
若内存限制比CPU核心数更严格,工作进程数会按上述公式自动缩减。也可通过设置PUMA_WORKERS显式指定工作进程数。
Dockerfile及其他源代码见https://github.com/sclorg/s2i-ruby-container%E3%80%82%E8%AF%A5%E4%BB%93%E5%BA%93%E8%BF%98%E5%8C%85%E5%90%AB%E5%85%B6%E4%BB%96%E7%89%88%E6%9C%ACRuby%E7%8E%AF%E5%A2%83%E7%9A%84Dockerfile%EF%BC%9ACentOS%E7%9A%84Dockerfile%E5%90%8D%E4%B8%BA%60Dockerfile%60%EF%BC%8CRHEL%E7%9A%84%E5%90%8D%E4%B8%BA%60Dockerfile.rhel7%60%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务