本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该容器镜像包含Ruby 2.2,作为构建Ruby 2.2应用程序的S2I基础镜像。用户可选择基于红帽企业Linux(RHEL)或CentOS的构建器镜像:RHEL镜像可在红帽容器目录获取,镜像名为registry.access.redhat.com/rhscl/ruby-22-rhel7;CentOS镜像可在Docker中心获取,镜像名为centos/ruby-22-centos7。生成的镜像可使用Docker运行。
Ruby 2.2容器镜像是构建和运行各种Ruby 2.2应用程序及框架的基础平台。Ruby是一种解释型脚本语言,适用于快速简便的面向对象编程,具有处理文本文件和执行系统管理任务的多种功能(类似Perl),其特点是简单、直观且可扩展。
要使用独立的S2I构建简单的ruby-sample-app应用,并通过Docker运行生成的镜像,请执行以下步骤:
$ s2i build [***] --context-dir=2.2/test/puma-test-app/ rhscl/ruby-22-rhel7 ruby-sample-app $ docker run -p 8080:8080 ruby-sample-app
$ s2i build [***] --context-dir=2.2/test/puma-test-app/ centos/ruby-22-centos7 ruby-sample-app $ docker run -p 8080:8080 ruby-sample-app
$ 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
这两个变量指定Puma线程池的最小和最大线程数。
PUMA_WORKERS
指定启动的工作进程数。详见Puma的集群模式文档。
RUBYGEM_MIRROR
设置自定义RubyGems镜像URL,用于在构建过程中下载所需的gem包。
要动态获取运行中容器内源代码的变更,需执行以下步骤:
通过Docker的-e参数传递RAILS_ENV=development环境变量,运行构建后的Rails镜像:
$ docker run -e RAILS_ENV=development -p 8080:8080 rails-app
应用需使用能在源代码变更时重新加载服务器的gem,推荐以下gem:
需修改S2I运行脚本,确保Web服务器由所选gem启动以检测源代码变更。构建应用镜像后,通过Docker的-e参数传递RACK_ENV=development:
$ docker run -e RACK_ENV=development -p 8080:8080 sinatra-app
使用Docker的exec命令进入容器:
docker exec -it <容器ID> /bin/bash
进入容器后,当前目录为/opt/app-root/src,即源代码所在位置。
可通过PUMA_MIN_THREADS和PUMA_MAX_THREADS环境变量调整每个工作进程的线程数。工作进程数默认由容器可用CPU核心数决定(遵循Puma文档推荐),通过cgroup的cpusets子系统检测。可通过--cpuset-cpus参数指定容器允许使用的CPU核心:
$ 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参数指定内存限制:
$ docker run -e PUMA_MAX_THREADS=32 --memory=300m -p 8080:8080 sinatra-app
若内存限制比CPU核心数更严格,工作进程数会按上述公式自动缩减。也可通过设置PUMA_WORKERS显式指定工作进程数。
Dockerfile及其他源代码见[***]Dockerfile,RHEL的名为Dockerfile.rhel7。
免费版仅支持 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