ビデオ会議システム Jitsi Meet on Docker (+ Podman Pods)

システムデーモンで管理(自動起動)

Podをシステムデーモンのサービスとして登録することで、ユーザログイン時、またはホストマシン起動時に自動起動することができます。

システムデーモンを利用する方法として以下の2つが提供されています。

1) $ podman generate systemd ~

既存のポッド、コンテナからsystemdユニットファイルを生成しますが、あくまで既存のポッドやコンテナを起動・停止するサービスのため、ポッドやコンテナを削除するとサービスは無効になります。機能的には、docker-composeのstop,startに相当します。

2) Quadlet(推奨)

既存のコンテナ定義を参照して、イメージから新規にコンテナを起動するsystemdユニットファイルを生成します(既存のコンテナに依存しません)。サービスを停止するとコンテナは削除されます。機能的にはdocker-composeのup,downに相当します。 注) Podman v4.9.3時点では、ポッドとコンテナの連携機能が未実装(v5以降で対応)


1) $ podman generate systemd ~

Podの確認

$ podman pod ps
POD ID        NAME        STATUS      CREATED      INFRA ID      # OF CONTAINERS
8479ea3524b9  pod-jitsi   Exited      4 hours ago  de6fb0a4d245  5
7787d93bd426  pod-nginx   Exited      4 hours ago  20552d55e11c  2

各Podの管理をシステムデーモンに受け渡します。そのためのサービスファイルをpodman generate コマンドで作成します。

$ podman generate systemd --name pod-nginx --files

以下の2つのファイルが作成されます。

pod-pod-nginx.service
container-nginx.service

$ podman generate systemd --name pod-jitsi --files

以下の6つのファイルが作成されます。

pod-pod-jitsi.service
container-web.service
container-prosody.service
container-jicofo.service
container-jvb.service
container-jigasi.service

作成された上記ファイルを、ユーザレベルでシステムデーモンで管理する場合には、~/.config/systemd/user ディレクトリへコピーして下さい。

$ cp *.service ~/.config/systemd/user 

各サービスの有効化

$ systemctl --user daemon-reload
$ systemctl --user enable pod-pod-jitsi
$ systemctl --user enable pod-pod-nginx

サービスの起動

$ systemctl --user start pod-pod-jitsi
$ systemctl --user start pod-pod-nginx

上記の方法では、ユーザがログインする時のみ有効なので、ユーザログインに関係なく起動するには、以下の設定をして下さい。

$ sudo loginctl enable-linger $(whoami)