Slide 1

Slide 1 text

PmRails 様々なバージョンでの railsコマンド実行を 容易にするツール 1 2025/01/30 Shinjuku.rb #97

Slide 2

Slide 2 text

若色 譲二 ⚫ SNSアカウント ⚫ Bluesky: @picolab.bsky.social ⚫ 旧Twitter: @PICOLABofficial ⚫ ソフト関連の技術クチコミサイト TechTipsを開発・運営しています。 ⚫ https://techtips.page/ ⚫ このサイトの開発でRuby on Railsを 使っています。 2 自己紹介

Slide 3

Slide 3 text

PmRailsとは 3 Podmanを活用してローカル環境を汚さずに Railsのアプリのテストや開発をするための ツールセット • GitHub: https://github.com/wakairo/pmrails • 日本語README: https://github.com/wakairo/pmrails/blob/main/README.ja.md

Slide 4

Slide 4 text

目次 4 ⚫Podmanとは ⚫Podmanの活用例 ⚫PmRailsの概要 ⚫PmRailsの利用例

Slide 5

Slide 5 text

⚫Dockerと違ってルートレス動作がデフォルト ⚫サクッと、ルート権限なし実行、かつ、出力ファイ ルの所有者がユーザ(ルートでない) ⚫インストールが簡単 ⚫多くの環境でコマンド一発でインストール。 Ubuntuの例:sudo apt-get -y install podman Dockerとだいたい互換性のあるコンテナ管理ツール 5 Podmanとは ⇒Podmanを活用したツールは横展開しやすい

Slide 6

Slide 6 text

⚫最新(latest)のRubyバージョンでスクリプトを実行 podman run -it --rm -v "$PWD":/x -w /x ruby:latest ruby foo.rb ⚫Ruby 3.2でRails 7.2のアプリをnew podman run -it --rm -v "$PWD":/x -w /x ruby:3.2 sh -c "gem install rails -v 7.2 && rails new sample_app --skip-bundle" バージョンを指定した上で、様々なことが一行で可能 6 Podmanの活用例

Slide 7

Slide 7 text

⚫ pmrails: bin/railsのラッパーとして、Railsコマンドを実行 使用方法: pmrails COMMAND [OPTIONS] ⚫ pmrails-new: bin/rails newのラッパーとして、新しいRailsアプ リを作成 使用方法: pmrails-new RAILS_VERSION APP_PATH [OPTIONS] ⚫ pmrailsenvexec: コンテナ環境内で任意のコマンドを実行 使用方法: pmrailsenvexec COMMAND [OPTIONS] ⚫ pmbundle: bundleのラッパーとして、Gemを管理 使用方法: pmbundle [BUNDLE_ARGS] 4つのコマンドでrails開発を広くカバー 7 PmRailsの概要

Slide 8

Slide 8 text

⚫Railsバージョン8.0で新しいRailsアプリを作成 pmrails-new 8.0 sample_app --skip-bundle ⚫作成したアプリケーションのディレクトリに移動 cd sample_app ⚫Bundlerを実行してGemをインストール pmbundle install ⚫サーバーを起動 pmrails server -b 0.0.0.0 ⚫ウェブブラウザでhttp://localhost:3000/にアクセス Railsアプリの作成からサーバ起動まで 8 PmRailsの利用例

Slide 9

Slide 9 text

⚫ 「バグっぽい」や 「使いづらい」と いった ちょっとした こともお気軽にお寄 せくだい。 ⚫ https://www.techtips. page/ja/items/514 ⚫ 新しいTopicを立てて お伝えいただいて問題 ありません ご意見・ご要望などはTechTipsまで 9 PmRailsのサポート

Slide 10

Slide 10 text

PmRailsの現在のバージョン(1.0.0)に関して 10 ⚫ pmrails-newには、rails newのあらゆるコマンドを渡せる ⚫ newに関しては、DBの指定などもご自由に ⚫ DBがSQLiteならば、大部分がPmRailsでサクッと可能 ⚫ SQLite以外のDBには、今後ご要望が多ければ対応します

Slide 11

Slide 11 text

(参考)イメージが見つからないとエラーになったら 11 ⚫ 以下のようなエラーが発生した場合には、設定の追加が必要 Error: short-name "ruby:latest" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf" ⚫ 具体的には、エラーメッセージ内で示されている /etc/containers/registries.confに、以下の1行を追加すればOK unqualified-search-registries = ["docker.io"]