質問
次のDockerfileを使用してRuby on Railsプロジェクトのdockerリポジトリでjessie-backportsを使用しようとしています。
FROM ruby:2.4.1
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo 'alias ll="ls --color=auto -l"' >> ~/.bashrc
RUN apt-get remove -y python
RUN apt-get update --fix-missing
RUN apt-get -y upgrade
RUN echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && apt-get update
RUN apt-get install -y certbot -t jessie-backports
ところでドッカーイメージを作ろうとしたら。インストール中に次のエラーが発生します。
E: Release file for http://archive.debian.org/debian/dists/jessie-backports/InRelease is expired (invalid since 77d 3h 49min 17s). Updates for this repository will not be applied.
3月27日現在ルーカス・ヌスバウムここで対馬ブログ投稿jessie-updates と jessie-backports は Debian ミラーから削除されます。私が言及したブログ記事には、次のものを置き換える必要があると述べています。
deb http://ftp.debian.org/debian jessie-backports main
他のコマンドを使用してください。
deb http://archive.debian.org/debian/ jessie-backports main contrib non-free
echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
そのため、コマンドを次のように変更しました。
FROM ruby:2.4.1
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo 'alias ll="ls --color=auto -l"' >> ~/.bashrc
RUN apt-get remove -y python
RUN apt-get update --fix-missing
RUN apt-get -y upgrade
RUN echo "deb http://archive.debian.org/debian/ jessie-backports main contrib non-free" > /etc/apt/sources.list
RUN echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get update
RUN apt-get install -y certbot -t jessie-backports
しかし、同じ問題がまだ存在します。
私はまた、コマンドを他のコマンドの前に移動しようとしました。簡単次のコマンド:
FROM ruby:2.4.1
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo 'alias ll="ls --color=auto -l"' >> ~/.bashrc
RUN echo "deb http://archive.debian.org/debian/ jessie-backports main contrib non-free" > /etc/apt/sources.list
RUN echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get update
RUN apt-get remove -y python
RUN apt-get update --fix-missing
RUN apt-get -y upgrade
RUN apt-get install -y certbot -t jessie-backports
答え1
この問題を解決するには、certbotが正しくインストールされるように、すべてのDebianマスターリポジトリを抽出する必要があります。
FROM ruby:2.4.1
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true
RUN echo 'alias ll="ls --color=auto -l"' >> ~/.bashrc
RUN echo "deb http://ftp.debian.org/debian jessie main" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get remove -y python
RUN apt-get update --fix-missing
RUN apt-get -y upgrade
# Let's Encrypt (SSL CERTIFICATES)
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian/ jessie-backports main" >> /etc/apt/sources.list
RUN echo 'Acquire::Check-Valid-Until no;' >> /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get update
RUN apt-get install -y certbot -t jessie-backports