
s390x/ruby** 注意 **:这是ruby官方镜像的s390x架构构建的“特定架构”仓库——更多信息请参见官方镜像文档中的“非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 s390x/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 s390x/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 s390x/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应用),将它们设置为空字符串应足以取消其影响。
s390x/ruby镜像有多种版本,每种版本针对特定使用场景设计。
s390x/ruby:<version>这是默认镜像。如果不确定自己的需求,建议使用此版本。它既可用作临时容器(挂载源代码并启动容器以运行应用),也可用作构建其他镜像的基础。
某些标签可能包含bookworm或trixie等名称,这些是Debian的发行版代号,表示镜像基于哪个发行版。如果您的镜像需要安装除镜像自带包之外的其他软件包,建议显式指定这些代号,以减少Debian新版本发布时可能出现的问题。
此标签基于buildpack-deps。buildpack-deps专为拥有多个镜像的Docker普通用户设计,它包含大量极其常见的Debian软件包。这减少了派生镜像需要安装的软件包数量,从而减小系统上所有镜像的总体积。
s390x/ruby:<version>-slim此镜像不包含默认标签中的常见软件包,仅包含运行s390x/ruby所需的最小软件包。除非您的环境中仅部署s390x/ruby镜像且有空间限制,否则强烈建议使用此仓库的默认镜像。
s390x/ruby:<version>-alpine此镜像基于流行的Alpine Linux项目,可在[

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