仮想マシンを用意して、Podmanをインストールします。
LTS版のLinuxディストリビューションを選択した場合、一般的なパッケージマネージャによるインストールでは
最新バージョンのインストールやセキュリティパッチ適用等出来ないことがあります。
よって、今回はLinuxbrewにてPodmanをインストールします。
※LinuxbrewはHomebrew公式ページにて記載されているコマンドを実行することでインストールできます。
インストールしたらPATHを通すことでbrewコマンドによるソフトウェアインストールが可能となります。
※Linuxbrewインストール後に出力される「Next steps:」にパスを通す説明があります。
下記コマンドでPodmanをインストールします。
brew install podman podman-compose
また、今回の検証環境ではUbuntu 24.04 LTSを使用しましたが、以下のパッケージが不足しており、Podmanの実行が出来なかったため別途インストールしています。
sudo apt install uidmap
構築中は気付きにくいですが、Podmanはログインユーザーのプロセス内で動いています。
そのためsshログアウト等によりPodmanが停止してDifyへ接続できなくなります。
これに対処する方法として、loginctlコマンドでユーザーログアウト後もプロセスが残るように設定します。
loginctl enable-linger <ユーザー名>
※本番環境などにおいては、プロセスを稼働させる専用ユーザーを用意することをお勧めいたします。
細かな部分として、ユーザーがアクセスするWEBサーバのポートを443ポートで受けたい場合、デフォルト構成だと権限不足によりPodmanでは正常に機能しません。(rootlessのため特権ポートの公開不可)
sysctl.confにnet.ipv4.ip_unprivileged_port_start=0を追加して反映することで対応可能となります。
##net.ipv4.ip_unprivileged_port_start=0を追記後下記を実施
sudo sysctl --system
最後に、Podmanでコンテナイメージを稼働させる上で、コンテナのディレクトリにパーミッション設定を行う必要があります。
デフォルトは下記ユーザディレクトリにて稼働しますので、chmod等で設定を行います。
##~/.local/share/containers/配下
chmod -R a+RX
以上で、Podmanの大まかな下準備は整いましたので、次回よりDifyをダウンロードして稼働させます。
