You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在node:latest基础Docker镜像中安装Ruby 3.0及以上版本

在node:latest镜像中安装Ruby 3.0+的解决方案

一、通过apt-get安装Ruby 3.0+的方法

Debian默认软件源的Ruby版本绑定系统版本(比如bullseye默认是2.7,bookworm默认是3.1),如果node:latest基于旧版Debian,你可以添加第三方可靠源来获取高版本Ruby,比如sury的Ruby源:

在Dockerfile中添加以下步骤:

# 安装依赖工具
RUN apt-get update && apt-get install -y --no-install-recommends \
    gnupg2 \
    curl \
    ca-certificates \
    lsb-release

# 添加sury Ruby源的GPG密钥
RUN curl -fsSL https://deb.sury.org/ruby/apt.gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/sury-ruby.gpg

# 添加源到软件源列表
RUN echo "deb https://deb.sury.org/ruby/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-ruby.list

# 安装Ruby 3.0+(示例为3.2,可替换为3.1/3.3等版本)
RUN apt-get update && apt-get install -y --no-install-recommends \
    ruby3.2 \
    ruby3.2-dev

# 验证安装版本
RUN ruby --version

二、配置Dockerfile使用bash而非sh

node镜像默认shell是sh,而rvm的安装脚本和部分命令依赖bash独有的语法特性,你有两种切换方式:

1. 全局设置默认shell

在Dockerfile开头添加SHELL指令,后续所有RUN命令都会用bash执行:

# 设置默认shell为bash
SHELL ["/bin/bash", "-c"]

# 安装rvm及Ruby 3.2的示例步骤
RUN apt-get update && apt-get install -y --no-install-recommends \
    curl \
    gnupg2 \
    && gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \
    && curl -sSL https://get.rvm.io | bash -s stable --ruby=3.2 \
    && source /etc/profile.d/rvm.sh \
    && rvm use 3.2 --default

# 验证Ruby版本
RUN ruby --version

2. 单条RUN命令临时使用bash

如果不想全局切换shell,可在需要的RUN命令里指定bash执行:

RUN /bin/bash -c ' \
    apt-get update && apt-get install -y curl gnupg2 \
    && gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB \
    && curl -sSL https://get.rvm.io | bash -s stable --ruby=3.2 \
    && source /etc/profile.d/rvm.sh \
    && rvm use 3.2 --default \
'

核心问题解析

你遇到的问题根源:

  • Debian默认源的Ruby版本与系统版本绑定,旧版Debian系统自然无法获取高版本Ruby;
  • rvm脚本大量使用bash独有的语法(如数组操作、扩展通配符等),而sh作为POSIX兼容的轻量shell不支持这些特性,导致执行失败。

内容的提问来源于stack exchange,提问作者Zack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:35:27