私が言ったように、Podmanの設定があります。Unix&Linux Stack Exchangeへの回答です。。私はRocky Linux 9で実行しています。
loginctl enable-linger $(whoami)
また、起動時にsystemdを使用してpodmanプロセスを実行できるようにユーザーセッションを維持するように設定しました。私のシステムファイルは次のとおりです
[Unit]
Description=Patches Service
Wants=network.target
After=network.target
Requires=user@${USER}.service
[Service]
Type=oneshot
TimeoutStartSec=10min
ExecStart=/bin/bash ${SCRIPT_DIR}/patches.sh start --continuous
[Install]
WantedBy=default.target
patch.shスクリプトは、共通コンテナネットワークバックエンドを共有する一連のコンテナを実行します。前任者:
podman run \
--name patches-nginx \
--env-file ${TOP_DIR}/.patches-nginx \
--volume ${SCRIPT_DIR}/nginx_config/nginx.conf:/etc/nginx/nginx.conf:Z \
--volume ${TOP_DIR}/${CERT_DIRECTORY}:/patches/${CERT_DIRECTORY}:z \
--publish 443:443 \
--publish 80:80 \
--detach \
--network host-bridge-net \
--restart=always \
docker.io/library/nginx:${NGINX_VERSION}
この設定を完了した後にサーバーを再起動すると、次の現象が発生することがわかりました。
デバッグ中ですが、中断の原因が何であるかよくわかりません。どんな指針でも感謝します。
答え1
これは、コンテナ自体にsystemdと競合する再起動ポリシーを割り当てると発生します。私が使用すると、podman generate systemd
以下が表示されます。
WARN[0000] Container 59590e79e4fc95158b74360fa6491a907c6a7cafa1b24d9ff34117a8a15cfc03 has restart policy "unless-stopped" which can lead to issues on shutdown: consider recreating the container without a restart policy and use systemd's restart mechanism instead
そして
WARN[0000] Container 574fd77e6dc57eeac56358003e73ecf122058d3c212201c5b24b200c836df798 has restart policy "always" which can lead to issues on shutdown: consider recreating the container without a restart policy and use systemd's restart mechanism instead
Restart=on-failure
systemdを使用するときは、コンテナ自体ではなくコンテナを再起動するなど、systemdの戦略を使用する必要があります。そうしないと、終了時にコンテナがクラッシュします。