
library/rubyDocker社区
Docker社区Slack、Server Fault、Unix & Linux 或 Stack Overflow
[***]
(更多信息)
amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、mips64le、ppc64le、riscv64、s390x
repo-info仓库的repos/ruby/目录(历史记录)
(包含镜像元数据、传输大小等)
official-images仓库的library/ruby标签
official-images仓库的library/ruby文件(历史记录)
docs仓库的ruby/目录(历史记录)
3.5.0-preview1-trixie, 3.5-rc-trixie, 3.5.0-preview1, 3.5-rc3.5.0-preview1-slim-trixie, 3.5-rc-slim-trixie, 3.5.0-preview1-slim, 3.5-rc-slim3.5.0-preview1-bookworm, 3.5-rc-bookworm3.5.0-preview1-slim-bookworm, 3.5-rc-slim-bookworm3.5.0-preview1-alpine3.22, 3.5-rc-alpine3.22, 3.5.0-preview1-alpine, 3.5-rc-alpine3.5.0-preview1-alpine3.21, 3.5-rc-alpine3.21latest标签)3.4.7-trixie, 3.4-trixie, 3-trixie, trixie, 3.4.7, 3.4, 3, latest3.4.7-slim-trixie, 3.4-slim-trixie, 3-slim-trixie, slim-trixie, 3.4.7-slim, 3.4-slim, 3-slim, slim3.4.7-bookworm, 3.4-bookworm, 3-bookworm, bookworm3.4.7-slim-bookworm, 3.4-slim-bookworm, 3-slim-bookworm, slim-bookworm3.4.7-alpine3.22, 3.4-alpine3.22, 3-alpine3.22, alpine3.22, 3.4.7-alpine, 3.4-alpine, 3-alpine, alpine3.4.7-alpine3.21, 3.4-alpine3.21, 3-alpine3.21, alpine3.213.3.9-trixie, 3.3-trixie, 3.3.9, 3.33.3.9-slim-trixie, 3.3-slim-trixie, 3.3.9-slim, 3.3-slim3.3.9-bookworm, 3.3-bookworm3.3.9-slim-bookworm, 3.3-slim-bookworm3.3.9-alpine3.22, 3.3-alpine3.22, 3.3.9-alpine, 3.3-alpine3.3.9-alpine3.21, 3.3-alpine3.213.2.9-trixie, 3.2-trixie, 3.2.9, 3.23.2.9-slim-trixie, 3.2-slim-trixie, 3.2.9-slim, 3.2-slim3.2.9-bookworm, 3.2-bookworm3.2.9-slim-bookworm, 3.2-slim-bookworm3.2.9-alpine3.22, 3.2-alpine3.22, 3.2.9-alpine, 3.2-alpine3.2.9-alpine3.21, 3.2-alpine3.21Ruby是一种动态、反射式、面向对象的通用开源编程语言。其设计者表示,Ruby受Perl、Smalltalk、Eiffel、Ada和Lisp等语言影响,支持函数式、面向对象、命令式等多种编程范式,具备动态类型系统和自动内存管理。
***:Ruby(编程语言)
!Ruby logo
在Ruby项目根目录创建Dockerfile:
dockerfileFROM ruby:3.3 # 可替换为其他标签,如ruby:3.4-slim # 若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同级),执行以下命令构建并运行:
console$ docker build -t my-ruby-app . $ docker run -it --name my-running-script my-ruby-app
上述Dockerfile需项目根目录存在Gemfile.lock。若本地未生成,可通过以下命令生成:
console$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:3.3 bundle install
(在项目根目录执行,ruby:3.3可替换为实际使用的镜像标签)
对于简单的单文件项目,可直接使用Ruby镜像运行脚本,无需编写Dockerfile:
console$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp ruby:3.3 ruby your-daemon-or-script.rb
(your-daemon-or-script.rb替换为实际脚本文件名)
Ruby默认继承运行环境的 locale。桌面环境通常使用*.UTF-8(如en_US.UTF-8),但Docker默认locale为C,可能导致编码问题。若应用需处理UTF-8,建议通过环境变量显式设置:
console$ docker run -e LANG=C.UTF-8 ... # 运行时设置 # 或在Dockerfile中添加:ENV LANG C.UTF-8
本镜像设置了多个环境变量(如GEM_HOME、BUNDLE_SILENCE_ROOT_WARNING、BUNDLE_APP_CONFIG),优化容器内单应用运行场景(例如避免宿主机.bundle目录干扰容器内依赖)。变量定义可在对应Dockerfile中查看。
若需在单个容器中运行多个Ruby应用,可将这些变量设为空字符串以禁用默认行为。
Ruby镜像提供多种变体,适用于不同场景:
适合大多数用户,基于buildpack-deps构建,包含大量常用Debian包,减少衍生镜像的依赖安装需求。标签中含 Debian 代号(如trixie、bookworm)的变体,基于对应Debian版本,建议显式指定代号以避免Debian版本更新导致的兼容性问题。
仅包含运行Ruby所需的最小依赖,体积小于默认版本,适合空间受限的环境。但不含默认版本中的常见工具,需自行安装额外依赖。
基于Alpine Linux(alpine官方镜像),体积极小(基础镜像约5MB),适合对镜像大小敏感的场景。
注意:Alpine使用musl libc而非glibc,可能存在兼容性问题;且默认不含git、bash等工具,需在Dockerfile中自行安装(参考Alpine镜像文档)。
ruby/目录查看自动检测的许可证信息。使用前请确保遵守所有包含软件的许可证要求。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务