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이 질문을 작성할 때 실수가 있었을 수도 있습니다.

재현할 수 없는 문제에 대한 솔루션을 테스트하는 것은 어렵기 때문에 한 가지 제안만 할 수 있습니다. 작업 시스템에서 키 파일을 가져와 이미지(있어야 하는 위치 /etc/apt/trusted.gpg.d/)에 복사할 수 있습니다. 이렇게 하면 작동 상태로 돌아갑니다.

작동해야 하는 다른 옵션:

  1. 사용 가능한 패키지의 작동 중인 로컬 캐시가 이미 있는 경우 debian-archive-keyring파일이 포함된 패키지를 (다시)설치하면 됩니다. 그러나 새 Docker 이미지에서는 이것이 불가능합니다.

  2. 다운로드만 하면 됩니다debian-archive-keyring.deb이미지에서 파일을 가져와 수동으로 설치합니다.

관련 정보