패키지를 삭제한 후 Docker를 사용하여 debian jessie-backports 패키지를 설치하는 방법은 무엇입니까?

패키지를 삭제한 후 Docker를 사용하여 debian jessie-backports 패키지를 설치하는 방법은 무엇입니까?

질문

다음 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

관련 정보