設定 - Podman Compose
概要
podman compose
コマンドは、docker-composeやpodman-composeのような外部のComposeプロバイダの薄いラッパーである。
つまり、podman compose
はConpose機能を実装する別のツールを実行するが、Composeプロバイダがローカルの Podmanソケットと透過的に通信できるように環境を設定する。
指定したオプション、コマンド、引数は直接composeプロバイダに渡される。
デフォルトのComposeプロバイダは、docker-composeとpodman-composeである。
両方ともインストールされている場合は、docker-composeが優先される。
なぜなら、docker-composeはCompose仕様のオリジナルの実装であり、サポートされているプラットフォーム (Linux、MacOS、Windows) で広く使用されているからである。
デフォルトの挙動を変更する場合や、選択したプロバイダのカスタムインストールパスが必要な場合は、containers.confファイルのcompose_provider
フィールドを変更する必要がある。
また、環境変数PODMAN_COMPOSE_PROVIDER
を設定して変更することもできる。
Podman Composeのインストール
パッケージ管理システムからインストール
# RHEL sudo dnf install podman-compose # SUSE sudo zypper install python3-podman-compose
PyPIからインストール
# Python3のルートディレクトリにインストールする場合 pip3 install podman-compose python-dotenv PyYAML # Python3のユーザディレクトリにインストールする場合 pip3 install --user podman-compose python-dotenv PyYAML # GithubからPodman Composeを直接インストールする場合 pip3 install https://github.com/containers/podman-compose/archive/devel.tar.gz pip3 install python-dotenv PyYAML
ソースコードからインストール
まず、PyYAMLおよびPython-DotEnvをインストールする。
パッケージ管理システムからPyYAMLおよびPython-DotEnvをインストールする場合、依存関係が多すぎるため、PyPIからインストールすることを推奨する。
pip3 install --user python-dotenv PyYAML
もし、CNIネットワークを使用する場合は、Podman DNSname Pluginをインストールする。
ただし、2023年以降、Podman DNSname Pluginの開発は止まっているため、netavarkとaardvark-dnsを使用することを推奨する。
# Podman DNSname Pluginのインストール git clone https://github.com/containers/dnsname.git cd dnsname make -j $(nproc) PREFIX=<Podmanのインストールディレクトリ> make install PREFIX=<Podmanのインストールディレクトリ> # netavarkおよびaardvark-dnsをパッケージ管理システムからインストール sudo zypper install netavark aardvark-dns
Podman ComposeのGithubから、ソースコードをダウンロードする。
git clone https://github.com/containers/podman-compose.git -b stable
Podman Composeをビルドおよびインストールする。
export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH" python3 ./setup.py build python3 ./setup.py install --prefix=<Podmanのインストールディレクトリ>
~/.profileファイル等に、環境変数PYTHONPATH
を設定する。
export PYTHONPATH="/<Podmanのインストールディレクトリ>/lib/python<Pythonのバージョン>/site-packages:$PYTHONPATH"