오래된 Docker 이미지 사용 시 apt-get 오류 해결

회사 사이트 테스트환경 조성을 위해 docker를 사용하여 구성 중 생각지 못한 문제가 발생했습니다.

회사 사이트는 apache - php7.3 환경에서 구동중인데, php7.3-apache 이미지의 경우 오래된 debian 이미지를 사용중이므로 docker build 중 오류가 나는 문제가 생겼습니다.

Err:7 http://deb.debian.org/debian stretch/main arm64 Packages
  404  Not Found
대충 이런 오류가 뜹니다.

구글링 해보니 stretch가 archive.debian.org로 이동되었기 때문에 패키지 사용이 되지 않는 문제였습니다. sources.list 파일을 수정해야 했습니다.

Dockerfile FROM 아랫줄에 아래 내용을 넣어줍니다.

RUN echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list 
RUN echo "deb-src http://archive.debian.org/debian stretch main" >> /etc/apt/sources.list 
RUN echo "deb http://archive.debian.org/debian stretch-backports main" >> /etc/apt/sources.list 
RUN echo  "deb http://archive.debian.org/debian-security stretch/updates main" >> /etc/apt/sources.list 
RUN echo  "deb-src http://archive.debian.org/debian-security stretch/updates main" >> /etc/apt/sources.list

위 코드는 sources.list 파일의 내용을 모두 지우고 새로 작성합니다.

http 말고 https 를 사용하라는 글이 있는데... 그러면 중간에 멈추는 현상이 발생했습니다.

내용의 변경만을 하려면 아래 한줄로 해결할 수 있습니다.
단, 이렇게 변경을 하게 되면 deb.debian.org 외 다른 저장소가 있는 경우 오류가 발생하게 됩니다. 가능하면 위 방법으로 처리하시는게 좋습니다.

RUN sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list
{{#is "post"}} {{/is}}