🙆
PythonやRubyをバージョン使い分けする
はじめに
PythonやRubyを使う際に、バージョンを使い分けることがあります。
バージョンの使い分けする方法はpyenvやrbenvなど色々あると思いますが、
今回はDockerを利用してPythonやRubyのバージョンを使い分ける方法を紹介します。
前提条件
- Dockerがインストールされていること
zshrc設定
- ~/zshrc に以下を追記
# python For Docker
alias python38='docker run --rm -v $(pwd):/app -w /app python:3.8 python'
alias python39='docker run --rm -v $(pwd):/app -w /app python:3.9 python'
alias python310='docker run --rm -v $(pwd):/app -w /app python:3.10 python'
alias python311='docker run --rm -v $(pwd):/app -w /app python:3.11 python'
alias python312='docker run --rm -v $(pwd):/app -w /app python:3.12 python'
# Ruby For Docker
alias ruby27='docker run --rm -v $(pwd):/app -w /app ruby:2.7 ruby'
alias ruby30='docker run --rm -v $(pwd):/app -w /app ruby:3.0 ruby'
alias ruby31='docker run --rm -v $(pwd):/app -w /app ruby:3.1 ruby'
alias ruby32='docker run --rm -v $(pwd):/app -w /app ruby:3.2 ruby'
- 読み込み
source ~/.zshrc
使い方
イメージをダウンロードしていない場合初回実行だけイメージのダウンロードが発生します。
2回目以降は新しいマイクロバージョンがリリースされない限り発生しないはずです。
Python版
- helloworld.py というファイルを作成
import sys
print(sys.version)
- python3.8を使いたい場合
python38 helloworld.py
- python3.9を使いたい場合
python39 helloworld.py
Ruby版
- helloworld.rb というファイルを作成
puts RUBY_VERSION
- ruby3.1を使いたい場合
ruby31 helloworld.rb
- ruby3.2を使いたい場合
ruby32 helloworld.rb
まとめ
Dockerを利用することで、ローカル環境を汚さず
PythonやRubyのバージョンを使い分けることができます。
Discussion