docker build--ssh
フラグを使用して、ビルドに ssh-agent からのキーへのアクセスを許可しています。
podman で同じことをしようとしてもうまくいきません。私は macOS Monterey 12.0.1 で作業しています。インテルチップ。これをUbuntuとWSL2でも再現しました。
❯ podman --version
podman version 3.4.4
これは Dockerfile の例です。
FROM python:3.10
RUN mkdir -p -m 0600 ~/.ssh \
&& ssh-keyscan github.com >> ~/.ssh/known_hosts
RUN --mount=type=ssh git clone git@github.com:ruarfff/a-private-repo-of-mine.git
実行するDOCKER_BUILDKIT=1 docker build --ssh default .
と動作します。つまり、ビルドが成功し、リポジトリが複製され、ssh キーがイメージに焼き付けられません。
podman build --ssh default .
ビルドを実行すると、次のように失敗します。
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Error: error building at STEP "RUN --mount=type=ssh git clone git@github.com:ruarfff/a-private-repo-of-mine.git": error while running runtime: exit status 128
podman をいじり始めたところです。ドキュメントを見ると、そのフラグはサポートされているようです。たとえば、IDを直接指定してフォーマットを少しいじってみましたが、これまでのところ、フラグまたはマウントを指定するバリエーションはありません。これを説明するために私が見逃している可能性のあるポッドマンの仕組みについて何かありますか?
コメントで提案されているように、この行を追加します。
RUN --mount=type=ssh ssh-add -l
次のエラーが発生します。
STEP 4/5: RUN --mount=type=ssh ssh-add -l
Could not open a connection to your authentication agent.
Error: error building at STEP "RUN --mount=type=ssh ssh-add -l": error while running runtime: exit status 2
編集:
これは buildah のこの問題と関係があると思います。修正はマージされましたが、私が見る限りまだリリースされていません。