
arm64v8/ruby注意:这是ruby官方镜像的arm64v8架构构建的"per-architecture"仓库——更多信息,请参见官方镜像文档中的"除amd64之外的架构?"[[]]和官方镜像FAQ中的"Git中的镜像源已更改,现在该怎么办?"[[]]。
维护者:
Docker社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile链接3.5.0-preview1-trixie, 3.5-rc-trixie, 3.5.0-preview1, 3.5-rc
3.5.0-preview1-slim-trixie, 3.5-rc-slim-trixie, 3.5.0-preview1-slim, 3.5-rc-slim
3.5.0-preview1-bookworm, 3.5-rc-bookworm
3.5.0-preview1-slim-bookworm, 3.5-rc-slim-bookworm
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-trixie, 3.4-trixie, 3-trixie, trixie, 3.4.7, 3.4, 3, latest
3.4.7-slim-trixie, 3.4-slim-trixie, 3-slim-trixie, slim-trixie, 3.4.7-slim, 3.4-slim, 3-slim, slim
3.4.7-bookworm, 3.4-bookworm, 3-bookworm, bookworm
3.4.7-slim-bookworm, 3.4-slim-bookworm, 3-slim-bookworm, slim-bookworm
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-trixie, 3.3-trixie, 3.3.9, 3.3
3.3.9-slim-trixie, 3.3-slim-trixie, 3.3.9-slim, 3.3-slim
3.3.9-bookworm, 3.3-bookworm
3.3.9-slim-bookworm, 3.3-slim-bookworm
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-trixie, 3.2-trixie, 3.2.9, 3.2
3.2.9-slim-trixie, 3.2-slim-trixie, 3.2.9-slim, 3.2-slim
3.2.9-bookworm, 3.2-bookworm
3.2.9-slim-bookworm, 3.2-slim-bookworm
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
已发布镜像制品详情:
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 arm64v8/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 arm64v8/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 arm64v8/ruby:3.3 ruby your-daemon-or-script.rb
默认情况下,Ruby继承其运行环境的 locale。对于大多数在桌面系统上运行Ruby的用户,这可能意味着使用某种*.UTF-8变体(如en_US.UTF-8等)。但在Docker中,默认locale为C,可能导致意外结果。如果应用需要处理UTF-8,建议通过-e LANG=C.UTF-8或ENV LANG C.UTF-8显式调整镜像/容器的locale。
本镜像设置了多个环境变量,用于调整Bundler和Gem在容器内运行单个应用时的行为(特别是允许将应用的开发源代码绑定挂载到容器内,且避免主机的.bundle干扰容器的正常功能)。
这些环境变量在上述链接的Dockerfile中有明确列出,其中包括GEM_HOME、BUNDLE_SILENCE_ROOT_WARNING和BUNDLE_APP_CONFIG等。
如果这些变量对您的使用场景造成问题(例如在单个容器中运行多个Ruby应用),将其设置为空字符串通常可取消其影响。
arm64v8/ruby镜像有多种变体,每种设计用于特定场景。
arm64v8/ruby:<version>这是默认镜像。如果不确定需求,建议使用此变体。它既可用作临时容器(挂载源代码并启动容器以运行应用),也可用作构建其他镜像的基础。
部分标签可能包含bookworm或trixie等名称,这些是Debian的版本代号,表示镜像基于哪个Debian版本构建。如果镜像需要安装默认镜像之外的额外软件包,建议显式指定这些代号,以减少Debian新版本发布时可能的中断。
此标签基于buildpack-deps。buildpack-deps为拥有多个镜像的Docker普通用户设计,包含大量极常见的Debian软件包。这减少了派生镜像需要安装的软件包数量,从而减小系统中所有镜像的总体大小。
arm64v8/ruby:<version>-slim此镜像不包含默认标签中的常见软件包,仅包含运行arm64v8/ruby所需的最小软件包。除非您的环境中仅部署arm64v8/ruby镜像且有空间限制,否则强烈建议使用本仓库的默认镜像。
arm64v8/ruby:<version>-alpine此镜像基于流行的Alpine Linux项目,该项目在



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务