注意: 这是ruby镜像的arm32v6架构构建版本的“每个架构”仓库——更多信息,请参见镜像文档中的“非amd64架构?”和***镜像FAQ中的“Git中的镜像源已更改,现在该怎么办?”。
-** 维护者:**Docker社区
-** 获取帮助:**Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接3.5.0-preview1-alpine3.22, 3.5-rc-alpine3.22, 3.5.0-preview1-alpine, 3.5-rc-alpine
3.5.0-preview1-alpine3.21, 3.5-rc-alpine3.21
3.4.7-alpine3.22, 3.4-alpine3.22, 3-alpine3.22, alpine3.22, 3.4.7-alpine, 3.4-alpine, 3-alpine, alpine
3.4.7-alpine3.21, 3.4-alpine3.21, 3-alpine3.21, alpine3.21
3.3.9-alpine3.22, 3.3-alpine3.22, 3.3.9-alpine, 3.3-alpine
3.3.9-alpine3.21, 3.3-alpine3.21
3.2.9-alpine3.22, 3.2-alpine3.22, 3.2.9-alpine, 3.2-alpine
3.2.9-alpine3.21, 3.2-alpine3.21
-** 提交issue的位置:[*]
-** 支持的架构:**(更多信息)
amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, mips64le, ppc64le, riscv64, s390x
-** 发布的镜像 artifact 详情:**repo-info 仓库的 repos/ruby/ 目录(历史记录)
(镜像元数据、传输大小等)
-** 镜像更新:**official-images 仓库的 library/ruby 标签
official-images 仓库的 library/ruby 文件(历史记录)
-** 本描述的来源:**docs 仓库的 ruby/ 目录(历史记录)
Ruby是一种动态、反射式、面向对象的通用开源编程语言。据其作者介绍,Ruby 受到了 Perl、Smalltalk、Eiffel、Ada 和 Lisp 的影响。它支持多种编程范式,包括函数式、面向对象和命令式。它还具有动态类型系统和自动内存管理。
***.org/wiki/Ruby_(programming_language)
!logo
DockerfiledockerfileFROM arm32v6/ruby:3.3 # 如果 Gemfile 自 Gemfile.lock 修改后有变更,则抛出错误 RUN bundle config --global frozen 1 WORKDIR /usr/src/app COPY Gemfile Gemfile.lock ./ RUN bundle install COPY . . CMD ["./your-daemon-or-script.rb"]
将此文件放在应用的根目录下,与 Gemfile 同级。
然后可以构建并运行 Ruby 镜像:
console$ docker build -t my-ruby-app . $ docker run -it --name my-running-script my-ruby-app
Gemfile.lock上述示例 Dockerfile 要求应用目录中存在 Gemfile.lock。以下 docker run 命令可帮助生成该文件。在应用根目录下(与 Gemfile 同级)运行:
console$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app arm32v6/ruby:3.3 bundle install
对于许多简单的单文件项目,编写完整的 Dockerfile 可能不太方便。在这种情况下,可以直接使用 Ruby Docker 镜像运行 Ruby 脚本:
console$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp arm32v6/ruby:3.3 ruby your-daemon-or-script.rb
默认情况下,Ruby 继承其运行环境的区域设置。对于大多数在桌面系统上运行 Ruby 的用户,这可能意味着使用某种 *.UTF-8 变体(如 en_US.UTF-8 等)。但在 Docker 中,默认区域设置为 C,这可能会导致意外结果。如果应用需要处理 UTF-8,建议通过 -e LANG=C.UTF-8 或 ENV LANG C.UTF-8 显式调整镜像/容器的区域设置。
此镜像设置了多个环境变量,这些变量会改变 Bundler 和 Gem 的行为,以便在容器内运行单个应用(特别是允许将应用的开发源代码绑定挂载到容器内,且不会让主机的 .bundle 干扰容器的正常功能)。
我们设置的环境变量在上述链接的 Dockerfile 中有明确列出,其中包括 GEM_HOME、BUNDLE_SILENCE_ROOT_WARNING 和 BUNDLE_APP_CONFIG 等。
如果这些变量对您的使用场景造成问题(例如在单个容器中运行多个 Ruby 应用),将它们设置为空字符串 应该 足以取消其行为。
arm32v6/ruby 镜像有多种版本,每种版本设计用于特定用例。
arm32v6/ruby:<version>这是默认镜像。如果不确定自己的需求,可能应该使用此版本。它设计为既可作为临时容器使用(挂载源代码并启动容器以运行应用),也可作为构建其他镜像的基础。
此标签基于 buildpack-deps。buildpack-deps 专为在系统上有许多镜像的 Docker 普通用户设计。它默认包含大量极其常见的 Debian 软件包。这减少了派生镜像需要安装的软件包数量,从而减小系统上所有镜像的总体大小。
arm32v6/ruby:<version>-alpine此镜像基于流行的 Alpine Linux 项目,可在 alpine ***镜像 中获取。Alpine Linux 比大多数发行版基础镜像小得多(约 5MB),因此通常会生成更精简的镜像。
当最终镜像大小尽可能小是主要关注点时,此变体非常有用。需要注意的主要问题是它使用 musl libc 而非 glibc 及相关库,因此软件可能会因对 libc 要求/假设的深度不同而遇到问题。有关可能出现的问题以及使用基于 Alpine 的镜像的优缺点比较,请参见 此 Hacker News 评论线程。
为最小化镜像大小,基于 Alpine 的镜像中通常不包含额外的相关工具(如 git 或 bash)。以此镜像为基础,可在自己的 Dockerfile 中添加所需工具(如果不熟悉如何安装软件包,请参见 alpine 镜像描述 中的示例)。
查看此镜像中包含的软件的许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能受其他许可证约束(如基础发行版中的 Bash 等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于 repo-info 仓库的 ruby/ 目录 中。
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可证。

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429