Techioz Blog

Docker イメージの構築エラー「実行プログラムの実行に失敗しました [/bin/sh -c apt-get -y update]」

概要

Docker イメージを構築しようとしていますが、エラーがスローされ、その理由がわかりません。

RUN apt-get -y update で停止し、次のエラー メッセージが表示されます。

4.436 E: Release file for http://security.debian.org/debian-security/dists/buster/updates/InRelease is not valid yet (invalid for another 2d 16h 26min 22s). Updates for this repository will not be applied.

4.436 E: Release file for http://deb.debian.org/debian/dists/buster-updates/InRelease is not valid yet (invalid for another 3d 10h 28min 24s). Updates for this repository will not be applied.

executor failed running [/bin/sh -c apt-get -y update]: exit code: 100

私のdockerファイルは次のとおりです。

FROM python:3.7

# Adding trusting keys to apt for repositories
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
# Adding Google Chrome to the repositories
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
# Updating apt to see and install Google Chrome
RUN apt-get -y update
# Magic happens
RUN apt-get install -y google-chrome-stable

# Installing Unzip
RUN apt-get install -yqq unzip
# Download the Chrome Driver
RUN CHROMEDRIVER_RELEASE=$(curl http://chromedriver.storage.googleapis.com/LATEST_RELEASE) && \
    echo "Chromedriver latest version: $CHROMEDRIVER_RELEASE" && \
    wget --quiet "http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_RELEASE/chromedriver_linux64.zip" && \
    unzip chromedriver_linux64.zip && \
    rm -rf chromedriver_linux64.zip && \
    mv chromedriver /usr/local/bin/chromedriver && \
    chmod +x /usr/local/bin/chromedriver && \
    chromedriver --version
# Set display port as an environment variable
ENV DISPLAY=:99

WORKDIR /

COPY requirements.txt ./

RUN pip install --upgrade pip && pip install -r requirements.txt

COPY . .

RUN pip install -e .

ここで何が起きてるの?

解決策

私の場合、docker はキャッシュされた RUN apt update && apt upgrade コマンドを引き続き使用していたため、パッケージ ソースは更新されませんでした。

解決策は、 –no-cache フラグを使用して Docker イメージを一度ビルドすることでした。

docker build --no-cache .