本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该容器镜像包含Ruby 2.6,作为源到镜像(S2I)基础镜像,用于构建和运行Ruby 2.6应用程序。用户可选择基于RHEL、CentOS或Fedora的构建器镜像:RHEL镜像可在Red Hat容器目录获取,CentOS镜像在Quay.io,Fedora镜像在Fedora Registry。生成的镜像可使用podman运行。
注意:本文档示例中使用
podman命令,所有此类命令均可替换为docker,参数保持不变。
假设使用ubi8/ruby-26镜像(通过OpenShift中的ruby:2.6镜像流标签可用),构建简单ruby-sample-app应用的步骤如下:
oc new-app ruby:2.6~[***]
访问应用:
$ oc get pods $ oc exec <pod> -- curl 127.0.0.1:8080
该镜像支持OpenShift的源到镜像(S2I)构建策略,核心脚本包括:
相比S2I策略,Dockerfile提供更灵活的构建方式,适用于S2I不够灵活或在OpenShift外构建的场景。步骤如下:
podman pull ubi8/ruby-26
本例使用RHEL7镜像ubi8/ruby-26。
以示例应用[***]
git clone [***] app-src
包含三个核心操作:放置应用源码、安装依赖、设置默认命令。支持两种方式:
创建如下Dockerfile:
FROM ubi8/ruby-26 # 添加应用源码到assemble脚本预期目录,并设置权限(使容器无需root运行) USER 0 ADD app-src /tmp/src RUN chown -R 1001:0 /tmp/src USER 1001 # 设置开发模式 ENV RAILS_ENV=development # 安装依赖 RUN /usr/libexec/s2i/assemble # 设置默认命令 CMD /usr/libexec/s2i/run
创建如下Dockerfile:
FROM ubi8/ruby-26 USER 0 ADD app-src ./ RUN bundle install --path ./bundle CMD bundle exec "rackup -P /tmp/rack.pid --host 0.0.0.0 --port 8080"
podman build -t ruby-app .
podman run -d ruby-app
可在源码仓库的.s2i/environment文件中定义键值对设置环境变量:
RACK_ENV
指定应用部署环境(production、development、test),不同环境在日志详细程度、错误页面、gem安装等方面有不同行为。
注意:仅当
RACK_ENV为production时才会编译应用资产。
DISABLE_ASSET_COMPILATION
设置为true时跳过资产编译,仅在production环境下生效,适用于资产已预编译的场景。
PUMA_MIN_THREADS、PUMA_MAX_THREADS
指定Puma线程池的最小和最大线程数。
PUMA_WORKERS
指定启动的工作进程数,详见Puma的集群模式文档。
RUBYGEM_MIRROR
设置自定义RubyGems镜像URL,用于构建过程中下载gem包。
要动态获取应用源码变更,需执行以下步骤:
运行构建的Rails镜像时,通过-e参数传递RAILS_ENV=development:
$ podman run -e RAILS_ENV=development -p 8080:8080 rails-app
需使用支持源码变更自动重载的gem,如:
需修改S2I run脚本,使Web服务器通过上述gem启动以检测源码变更。构建镜像后,运行时传递RACK_ENV=development:
$ podman run -e RACK_ENV=development -p 8080:8080 sinatra-app
使用Podman的exec命令进入容器:
$ podman exec -it <容器ID> /bin/bash
进入容器后,当前目录为/opt/app-root/src(源码存放目录)。
通过PUMA_MIN_THREADS和PUMA_MAX_THREADS调整线程数,工作进程数默认根据可用CPU核心数(基于cgroup cpusets子系统)确定。可通过--cpuset-cpus参数指定容器允许使用的CPU核心:
$ podman run -e PUMA_MAX_THREADS=32 --cpuset-cpus='0-2,3,5' -p 8080:8080 sinatra-app
工作进程数同时受内存限制(通过cgroup强制执行)影响。镜像默认假设基础内存需求为50 MiB,每个工作进程额外需15 MiB,每个线程需128 KiB。总内存需求计算公式:
50 + 15 * 工作进程数 + 0.125 * 工作进程数 * PUMA_MAX_THREADS
可通过--memory参数指定内存限制:
$ podman run -e PUMA_MAX_THREADS=32 --memory=300m -p 8080:8080 sinatra-app
若内存限制比CPU核心数更严格,工作进程数会按上述公式自动缩减。也可通过PUMA_WORKERS显式设置工作进程数。
Dockerfile及其他源码可在[***]Dockerfile,RHEL7对应Dockerfile.rhel7,RHEL8对应Dockerfile.rhel8,Fedora对应Dockerfile.fedora。


免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429