インフラ / Tech
Docker Sandboxes サンドボックス内でRubyが使えるようにする
Xでシェア
ON AIR
0:00
--:--
RADIO
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にパスが通った状態で始まります。
コメント
まだコメントはありません。