
riscv64/ruby注意:这是ruby官方镜像的riscv64架构构建的“每架构”仓库——更多信息,请参见官方镜像文档中的“除amd64之外的架构?”和官方镜像FAQ中的“Git中的镜像源已更改,该怎么办?”。
维护者:
Docker社区
获取帮助:
Docker社区Slack、Server Fault、Unix & Linux或Stack Overflow
Dockerfile链接4.0.1-trixie, 4.0-trixie, 4-trixie, trixie, 4.0.1, 4.0, 4, latest
4.0.1-slim-trixie, 4.0-slim-trixie, 4-slim-trixie, slim-trixie, 4.0.1-slim, 4.0-slim, 4-slim, slim
4.0.1-alpine3.23, 4.0-alpine3.23, 4-alpine3.23, alpine3.23, 4.0.1-alpine, 4.0-alpine, 4-alpine, alpine
4.0.1-alpine3.22, 4.0-alpine3.22, 4-alpine3.22, alpine3.22
3.4.8-trixie, 3.4-trixie, 3-trixie, 3.4.8, 3.4, 3
3.4.8-slim-trixie, 3.4-slim-trixie, 3-slim-trixie, 3.4.8-slim, 3.4-slim, 3-slim
3.4.8-alpine3.23, 3.4-alpine3.23, 3-alpine3.23, 3.4.8-alpine, 3.4-alpine, 3-alpine
3.4.8-alpine3.22, 3.4-alpine3.22, 3-alpine3.22
3.3.10-trixie, 3.3-trixie, 3.3.10, 3.3
3.3.10-slim-trixie, 3.3-slim-trixie, 3.3.10-slim, 3.3-slim
3.3.10-alpine3.23, 3.3-alpine3.23, 3.3.10-alpine, 3.3-alpine
3.3.10-alpine3.22, 3.3-alpine3.22
3.2.10-trixie, 3.2-trixie, 3.2.10, 3.2
3.2.10-slim-trixie, 3.2-slim-trixie, 3.2.10-slim, 3.2-slim
3.2.10-alpine3.23, 3.2-alpine3.23, 3.2.10-alpine, 3.2-alpine
3.2.10-alpine3.22, 3.2-alpine3.22
提交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 riscv64/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 riscv64/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 riscv64/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干扰容器的正常功能)。
我们设置的环境变量在上述链接的Dockerfiles中已列出,其中包括GEM_HOME、BUNDLE_SILENCE_ROOT_WARNING和BUNDLE_APP_CONFIG等。
如果这些变量对您的使用场景造成问题(例如在单个容器中运行多个Ruby应用),将其设置为空字符串应足以取消其行为。
riscv64/ruby镜像有多种版本,每种版本设计用于特定场景。
riscv64/ruby:<version>这是默认镜像。如果不确定需求,建议使用此版本。它既可用作临时容器(挂载源代码并启动容器以运行应用),也可用作构建其他镜像的基础。
某些标签可能包含如trixie等名称,这些是Debian的版本代号,表示镜像基于哪个Debian版本。如果镜像需要安装默认镜像之外的其他软件包,建议显式指定这些代号,以减少Debian新版本发布时可能出现的问题。
此标签基于buildpack-deps。buildpack-deps专为拥有多个镜像的Docker用户设计,包含大量常用Debian软件包,减少派生镜像需要安装的软件包数量,从而减小系统中所有镜像的总体大小。
riscv64/ruby:<version>-slim此镜像不包含默认标签中的常用软件包,仅包含运行riscv64/ruby所需的最小软件包。除非在仅部署riscv64/ruby镜像且有空间限制的环境中,否则强烈建议使用此仓库的默认镜像。
riscv64/ruby:<version>-alpine此镜像基于流行的Alpine Linux项目,可在alpine官方镜像中获取。Alpine Linux比大多数发行版基础镜像小得多(约5MB),因此通常会生成更精简的镜像。
当最终镜像大小是首要考虑因素时,此变体非常有用。需要注意的是,它使用musl libc而非glibc及相关库,因此软件可能会因libc需求/假设的深度而遇到问题。有关可能出现的问题及使用Alpine-based镜像的优缺点比较,请参见此Hacker News评论线程。
为最小化镜像大小,Alpine-based镜像通常不包含额外的相关工具(如git或bash)。以此镜像为基础,可在自己的Dockerfile中添加所需工具(如不熟悉如何安装软件包,参见alpine镜像描述中的示例)。
查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(如基础发行版中的Bash等,以及主要软件的任何直接或间接依赖项)。
可能自动检测到的其他许可证信息可在repo-info仓库的ruby/目录中找到。
对于任何预构建镜像的使用,镜像用户有责任确保对该镜像的任何使用都符合其中包含的所有软件的相关许可证。

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