Dockerイメージのビルド中に適切な公開鍵に問題があります。

Dockerイメージのビルド中に適切な公開鍵に問題があります。

PHPイメージを8.0からPHPイメージ8.1にアップグレードした後に問題が発生し、stackoverflowで問題が発生しました。

これは私のドッカーファイルです。

FROM php:8.1-apache AS apache
RUN a2enmod rewrite

WORKDIR /bin
WORKDIR ../

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 F8D2585B8783D481 BDE6D2B9216EC7A8

RUN apt update \
    && apt install \
    curl \
    git \
    unzip \
    cron \
    libzip-dev \
    libcurl4-openssl-dev \
    pkg-config \
    libssl-dev \
    libpng-dev \
    libjpeg62-turbo-dev \
    libicu-dev \
    wget \
    libcap2-bin \
    procps \
    -y \
    && setcap 'cap_net_bind_service=+ep' /usr/sbin/apache2 \
    && chown www-data:www-data /var/log/apache2 \
    && wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb \
    && apt install -y ./wkhtmltox_0.12.6.1-3.bookworm_amd64.deb \
    && rm wkhtmltox_0.12.6.1-3.bookworm_amd64.deb \
    && apt-get clean autoclean \
    && apt-get autoremove --yes
    etc...

イメージ構築中にエラーが発生しました。

[0mGet:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Get:2 http://deb.debian.org/debian bookworm-updates InRelease [52.1 kB]
Get:3 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Err:1 http://deb.debian.org/debian bookworm InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY F8D2585B8783D481
Err:2 http://deb.debian.org/debian bookworm-updates InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131
Err:3 http://deb.debian.org/debian-security bookworm-security InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 54404762BBB6E853 NO_PUBKEY BDE6D2B9216EC7A8

次の行を追加すると:

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9 6ED0E7B82643E131 F8D2585B8783D481 BDE6D2B9216EC7A8

無効:

[91mE: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation

dockerfileにgnupgの適切なインストーラを追加すると、公開鍵と同じエラーが表示され、インストールできません。

どうすればいいですか?

ベストアンサー1

Dockerfileを試してみると、欠落しているキーエラーは発生しません。糸を取り除き、RUN apt-key ...残りは大丈夫でした。おそらく、php:8.1-apacheこの質問を書くときに間違いがあったかもしれません。

再現できない問題の解決策をテストするのは難しいため、1つの提案しかできません。作業システムからキーファイルをインポートして、画像(必要な場所/etc/apt/trusted.gpg.d/)にコピーできます。これにより動作状態に戻ります。

動作する必要がある他のオプション:

  1. 利用可能なパッケージの動作中のローカルキャッシュがすでに存在する場合は、debian-archive-keyringファイルを含むパッケージを(再)インストールするだけです。しかし、新しいDockerイメージではこれは不可能です。

  2. ダウンロードするだけです。debian-archive-keyring.debイメージからファイルをインポートし、手動でインストールします。

おすすめ記事