私はこれを理解しようと頭を悩ませています。
新しくインストールされた Fedora 32 では、次の最小限のコンテナが正しく実行されません。
FROM centos:7
RUN yum install -y sudo && yum clean all -y
RUN useradd -m test
RUN sudo -u test true
これをテストするには、次を実行します。
podman build .
結果は次のとおりです。
STEP 4: RUN sudo -u test true
sudo: PAM account management error: Authentication service cannot retrieve authentication info
Error: error building at STEP "RUN sudo -u test true": error while running runtime: exit status 1
ここで疑問に思うのは、Fedora 32 が特別なのはなぜかということです。これは 31 でも動作していたはずです。関係するバージョンとその環境は変更されていないため、唯一の違いは podman である可能性があります。しかし、podman はコンテナー内 (または一般的な PAM)sudo
の呼び出しとどのような関係があるのでしょうか。sudo
(この質問には「podman」タグが付けられました。タグを作成できないためです)
答え1
さて、何時間も苦労してデバッグした結果、私が理解したことは次のとおりです。
- これを試す前に、新しいラップトップに移行しました。
/home
古いラップトップから新しいラップトップにコピーすることでこれを行いました。 - 新しいホーム ディレクトリのイメージ キャッシュに何らかの障害がありました。
podman
エラーは発生せず、イメージの再ダウンロードも試みませんでしたが、ハッシュが異なっていることがわかりました (別のマシンと比較すると)。イメージ内で が/etc/shadow
欠落していました。ただし、なぜ、どのようにそれが起こったのかはわかりません。 podman
キャッシュを完全に消去して再ダウンロードすると、正しい画像が取得され、すべてが再び機能するようになりました。
したがって、これは podman イメージを Fedora 31 から 32 にコピーするときに発生した非常に特殊なエラーだったに違いありません。イメージはある程度無傷でした。実行できました。しかし、少なくとも 1 つの重要なファイルが完全に欠落していました。非常に奇妙です。