该容器镜像包含Ruby 2.4,作为构建Ruby 2.4应用程序的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%8ERHEL%E3%80%81CentOS%E6%88%96Fedora%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%A8Red Hat容器目录获取,CentOS镜像在https://hub.docker.com/r/centos/%EF%BC%8CFedora%E9%95%9C%E5%83%8F%E5%9C%A8Fedora Registry。生成的镜像可使用https://github.com/containers/libpod%E8%BF%90%E8%A1%8C%EF%BC%88%E6%9C%AC%E6%96%87%E6%A1%A3%E4%B8%AD%60podman%60%E5%91%BD%E4%BB%A4%E5%8F%AF%E6%9B%BF%E6%8D%A2%E4%B8%BA%60docker%60%EF%BC%8C%E5%8F%82%E6%95%B0%E7%9B%B8%E5%90%8C%EF%BC%89%E3%80%82
适用于开发、部署和运行Ruby 2.4应用程序的场景,支持Ruby on Rails、Sinatra、Padrino等框架,可用于开发调试、持续集成/部署(CI/CD)及生产环境运行。
用法示例
以下以rhscl/ruby-24-rhel7镜像(OpenShift中对应ruby:2.4镜像流标签)为例说明使用方法。
在OpenShift中构建应用
构建https://github.com/sclorg/s2i-ruby-container/tree/master/2.4/test/puma-test-app%E7%A4%BA%E4%BE%8B%E5%BA%94%E7%94%A8%EF%BC%9A
bashoc new-app ruby:2.4~https://github.com/sclorg/s2i-ruby-container.git --context-dir=2.4/test/puma-test-app/
使用独立S2I工具构建应用
在已安装https://github.com/openshift/source-to-image%E7%9A%84%E7%B3%BB%E7%BB%9F%E4%B8%8A%EF%BC%9A
bash$ s2i build https://github.com/sclorg/s2i-ruby-container.git --context-dir=2.4/test/puma-test-app/ rhscl/ruby-24-rhel7 ruby-sample-app
访问应用
bash$ curl 127.0.0.1:8080
环境变量
可在源代码仓库的.s2i/environment文件中以键值对形式设置以下环境变量:
RACK_ENV
指定应用部署环境(production/development/test),不同环境在日志、错误页面、gem安装等方面行为不同。仅当设为production时会编译应用资产。
DISABLE_ASSET_COMPILATION
设为true时跳过资产编译,仅在production环境且资产已预编译时使用。
PUMA_MIN_THREADS、PUMA_MAX_THREADS
分别指定https://github.com/puma/puma Web服务器线程池的最小和最大线程数。
PUMA_WORKERS
指定Puma的工作进程数,详见Pumahttps://github.com/puma/puma#clustered-mode文档。
RUBYGEM_MIRROR
设置自定义RubyGems镜像URL,用于构建过程中下载gem包。
热部署
为动态获取源代码变更,需执行以下步骤:
Ruby on Rails应用
运行时通过-e参数传递RAILS_ENV=development:
bash$ podman run -e RAILS_ENV=development -p 8080:8080 rails-app
其他Ruby应用(Sinatra、Padrino等)
RACK_ENV=development:bash$ podman run -e RACK_ENV=development -p 8080:8080 sinatra-app
修改运行中容器的源代码
使用podman exec进入容器(源代码位于/opt/app-root/src):
bash$ podman exec -it <容器ID> /bin/bash
性能调优
线程数调整:通过PUMA_MIN_THREADS和PUMA_MAX_THREADS设置每个worker的线程范围。
CPU核心限制:worker进程数默认由容器可用CPU核心数决定(通过cgroup cpusets),可通过--cpuset-cpus指定核心:
bash$ podman run -e PUMA_MAX_THREADS=32 --cpuset-cpus='0-2,3,5' -p 8080:8080 sinatra-app
50 + 15 * WORKERS + 0.125 * WORKERS * PUMA_MAX_THREADS(单位:MiB),可通过--memory指定内存限制,worker数会自动缩减以适应:bash$ podman run -e PUMA_MAX_THREADS=32 --memory=300m -p 8080:8080 sinatra-app
PUMA_WORKERS环境变量直接指定worker进程数,覆盖CPU和内存自动计算结果。Dockerfile及源码可在https://github.com/sclorg/s2i-ruby-container%E8%8E%B7%E5%8F%96%E3%80%82%E4%BB%93%E5%BA%93%E4%B8%AD%E8%BF%98%E5%8C%85%E5%90%AB%E5%85%B6%E4%BB%96Ruby%E7%89%88%E6%9C%AC%E7%9A%84Dockerfile%EF%BC%9ACentOS%E7%89%88%E6%9C%AC%E4%B8%BA%60Dockerfile%60%EF%BC%8CRHEL7%E4%B8%BA%60Dockerfile.rhel7%60%EF%BC%8CRHEL8%E4%B8%BA%60Dockerfile.rhel8%60%EF%BC%8CFedora%E4%B8%BA%60Dockerfile.fedora%60%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务