오래된 Docker 이미지 사용 시 apt-get 오류 해결
회사 사이트 테스트환경 조성을 위해 docker를 사용하여 구성 중 생각지 못한 문제가 발생했습니다.
회사 사이트는 apache - php7.3 환경에서 구동중인데, php7.3-apache 이미지의 경우 오래된 debian 이미지를 사용중이므로 docker build 중 오류가 나는 문제가 생겼습니다.
구글링 해보니 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