Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PodmanとPmRails

Joji Wakairo
February 06, 2025
77

 PodmanとPmRails

Docker互換コンテナ管理ツールであるPodmanと
その応用例であるPmRailsについての
Omotesando.rb #106でのLTの資料です。

PmRailsのGitHub: https://github.com/wakairo/pmrails
PmRailsのサポートページ: https://www.techtips.page/ja/items/514

Joji Wakairo

February 06, 2025
Tweet

Transcript

  1. 若色 譲二 ⚫ SNSアカウント ⚫ Bluesky: @picolab.bsky.social ⚫ 旧Twitter: @PICOLABofficial

    ⚫ ソフト関連の技術クチコミサイト TechTipsを開発・運営しています。 ⚫ https://techtips.page/ ⚫ このサイトの開発でRuby on Railsを 使っています。 2 自己紹介
  2. Podの利用例:Podを構成する 7 ⚫ Podを作る ⚫ podman pod create --name tmppg

    ⚫ PodにPostgreSQLサーバのコンテナを追加 ⚫ podman run --name server --pod tmppg -e POSTGRES_PASSWORD=postgres -d postgres:17.2 ⚫ PodにPostgreSQLクライアントのコンテナを追加 ⚫ podman run --name client --pod tmppg -it -v "$PWD":/x -w /x postgres:17.2 psql -h localhost -U postgres -d postgres 同じPod内のコンテナ同士は localhostで通信が可能
  3. Podの利用例:Podから情報を出力する 8 ⚫ Podの構成をKubernetes YAML形式で保存 ⚫ podman generate kube tmppg

    -f=tmppg.yml ⚫ PostgreSQLサーバのデータをファイルにダンプ ⚫ podman run --name rm-dump --pod tmppg --rm -v "$PWD":/x -w /x postgres:17.2 pg_dump -Fc -h localhost -U postgres -d postgres -f backup.dump rmオプションで1コマンド の間だけコンテナをPodに 参加させられる
  4. Podの利用例:Podへ情報を入力する 10 ⚫ Podの構成をKubernetes YAMLから再構成 ⚫ podman play kube tmppg.yml

    ⚫ PostgreSQLサーバのデータをファイルからリストア ⚫ podman run --name rm-restore --pod tmppg --rm -v "$PWD":/x -w /x postgres:17.2 pg_restore --clean -h localhost -U postgres -d postgres backup.dump
  5. ⚫ 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開発を広くカバー 12 PmRailsの概要
  6. ⚫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アプリの作成からサーバ起動まで 13 PmRailsの利用例
  7. ⚫ 「バグっぽい」や 「使いづらい」と いった ちょっとした こともお気軽にお寄 せくだい。 ⚫ https://www.techtips. page/ja/items/514

    ⚫ 新しいTopicを立てて お伝えいただいて問題 ありません ご意見・ご要望などはTechTipsまで 14 PmRailsのサポート
  8. (参考)イメージが見つからないとエラーになったら 16 ⚫ 以下のようなエラーが発生した場合には、設定の追加が必要 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"]