Docker Sandboxes サンドボックス内でRubyが使えるようにする

Docker Sandboxes は極小さな仮想環境なのでRubyを使いたい場合はサンドボックス内に別途インストールが必要です。

インストール

Rubyを入れるサンドボックスを決める。

$ sbx ls

目当てのサンドボックス内にログインする

$ sbx exec -it [サンドボックス名] bash

サンドボックス内で必要なライブラリをインストールする

$ sudo apt update
$ sudo apt install -y \
    git curl build-essential \
    libssl-dev libreadline-dev zlib1g-dev \
    libyaml-dev libffi-dev libgdbm-dev \
    libncurses-dev libdb-dev uuid-dev

rbenvとをインストール

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init - bash)"' >> ~/.bashrc

読み込む

$ source ~/.bashrc

ruby-buildを入れる

$ git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

インストールするRubyのバージョンを確認

$ rbenv install --list

ここでは4.0.5 をインストールします。

$ rbenv install 4.0.5

しばらくしてエラーなく終わったら完了。
デフォルトで使用するRubyのバージョンを指定する。

rbenv global 4.0.5
rbenv rehash

環境変数の設定

ここまでは普通にRubyを入れる場合とだいたい同じですが、Docker SandboxesでRubyを使う場合はもう一工夫必要です。

以下のコマンドで、 /etc/sandbox-persistent.sh に先ほどと同じ環境変数を設定します。

cat <<'EOF' | sudo tee -a /etc/sandbox-persistent.sh
export RBENV_ROOT="$HOME/.rbenv"
export PATH="$RBENV_ROOT/bin:$RBENV_ROOT/shims:$PATH"
EOF

エージェントを指定してサンドボックスを起動したときは ~/.bashrc が読み込まれませんので環境変数を書いていても反映されません。
対応するためには、/etc/sandbox-persistent.shに書く必要があります。

次回以降、

$ sbx run opencode

したらRubyにパスが通った状態で始まります。

© 2025 Hiroe Tech Notes. All rights reserved.

コメント

まだコメントはありません。