maven:3.5.2-jdk-8でdockerfileをビルドすると、apt-getアップデートはdebian amd64パッケージを取得できません。

maven:3.5.2-jdk-8でdockerfileをビルドすると、apt-getアップデートはdebian amd64パッケージを取得できません。

ドッカーファイル:

FROM maven:3.5.2-jdk-8

RUN apt-get update && \
    apt-get install -y python-dev python-pip
RUN pip install awscli --upgrade

ビルドログ:

Preparing build context archive…
[==================================================>]3380/3380 files
Done

Sending build context to Docker daemon…
[==================================================>] 23.19MB
Done

Step 1/17 : FROM maven:3.5.2-jdk-8
 ---> d07bef19f01a
Step 2/17 : RUN apt-get update &&     apt-get install -y python-dev python-pip
 ---> Running in ebed1b8ce61e
Ign:1 http://security.debian.org stretch/updates InRelease
Ign:2 http://deb.debian.org/debian stretch InRelease
Ign:3 http://security.debian.org stretch/updates Release
Ign:4 http://deb.debian.org/debian stretch-updates InRelease
Ign:5 http://deb.debian.org/debian stretch Release
Ign:6 http://deb.debian.org/debian stretch-updates Release
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Ign:7 http://deb.debian.org/debian stretch/main arm64 Packages
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Ign:11 http://security.debian.org stretch/updates/main arm64 Packages
Ign:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
Ign:12 http://security.debian.org stretch/updates/main all Packages
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Err:7 http://deb.debian.org/debian stretch/main arm64 Packages
  404  Not Found
Ign:8 http://deb.debian.org/debian stretch/main all Packages
Err:9 http://deb.debian.org/debian stretch-updates/main arm64 Packages
  404  Not Found
Ign:10 http://deb.debian.org/debian stretch-updates/main all Packages
Err:11 http://security.debian.org stretch/updates/main arm64 Packages
  404  Not Found
Ign:12 http://security.debian.org stretch/updates/main all Packages
Reading package lists...
W: The repository 'http://security.debian.org stretch/updates Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file.
E: Failed to fetch http://security.debian.org/dists/stretch/updates/main/binary-arm64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-arm64/Packages  404  Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-arm64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Error response from daemon: The command '/bin/sh -c apt-get update &&     apt-get install -y python-dev python-pip' returned a non-zero code: 100
Failed to deploy '<unknown> Dockerfile: Dockerfile': Can't retrieve image ID from build stream

このDockerfileはうまく構築するために使用され、最近このエラーが発生し始めました。

答え1

Stretchがarchive.debian.orgに移動されました。、ストレージ構成を更新する必要があるか、より良い方法が必要です。最新の基本画像を使用する

リポジトリ構成を更新するには、拡張子とファイルを参照する行deb.debian.orgを変更します。archive.debian.org/etc/apt/sources.list/etc/apt/sources.list.d

答え2

@Stephen-kitt ありがとうございます!この変更でドッカー画像を更新してください:(

python:3.7.3-slim誰かが役に立つ場合は、エラーを回避するために(まだデフォルトのパッケージをインストールできる間)、Dockerイメージを次の変更で更新する必要があります。

RUN echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list

少なくともPGPキーは触れませんでした...

答え3

役に立つ答えをいただいた@Stephen_Kittと@Ben_Kaplanに感謝します!

これに触発され、Dockerfileに以下を追加してarchive.debian.orgに切り替えました。

RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
RUN sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list
RUN sed -i s/stretch-updates/stretch/g /etc/apt/sources.list

これにより、すべてがうまく機能し、誤解を招くエラーメッセージがポップアップしなくなります。

編集:以下のコメントでスコットG、この方法は、リストされている他のソースがない場合にのみ機能しますdeb.debian.org

答え4

同様の問題があるノード12イメージの場合は、libnotifyをインストールするためにdebianセキュリティも追加する必要がありました。

次の行を追加してDockerイメージが再び機能するようにしました。

最初の行はsource.listの既存のコンテンツを上書きし、残りのコンテンツは「新しい」ソースファイルに追加されます。

RUN MAJOR_VERSION=$(echo $NODE_VERSION | cut -d '.' -f 1) && \
    if [ "$MAJOR_VERSION" = "12" ] ; then \
    echo "deb [trusted=yes] http://archive.debian.org/debian stretch main non-free contrib" > /etc/apt/sources.list && \
    echo 'deb-src [trusted=yes] http://archive.debian.org/debian/ stretch main non-free contrib'  >> /etc/apt/sources.list && \
    echo 'deb [trusted=yes] http://archive.debian.org/debian-security/ stretch/updates main non-free contrib'  >> /etc/apt/sources.list; \
    fi

関連情報