Dockerfile을 빌드할 때 apt-get update에서 오류가 발생했습니다.
FROM ubuntu:17.10
RUN apt-get -y update && apt-get -y upgrade
RUN apt-get -y install nginx
EXPOSE 80
ONBUILD ADD website.tar /var/www/html
CMD ["nginx","-g","daemon off;"]
2번째 행의 명령인 apt-get update~ 부분에서 오류가 발생했습니다.
원인은 우분투 버전 때문이었습니다. 도커파일의 문제라기보다는 패키지 관리도구인 apt와 우분투의 버전이 문제였네요..
우분투 17버전이 오래되어서 우분투 원격 레포지토리에 찾는 라이브러리가 없었던 것입니다.
베이스 이미지를 우분투 18.04로 바꿔줘서 해결했습니다.
처음에 문제가 무엇인지 파악 못해서 여러 가지를 시도해봤습니다.
/etc/apt/sources.list 수정
여기서 restrict로 되어 있는 부분을 모두 trusty로 바꿔줬습니다.
생각해 보면 디폴트 설정을 아무것도 건드리지 않았는데 이 부분이 문제가 있다면 그것도 문제입니다..
필요없는 이미지 삭제
기존에 ubuntu를 이용해서 만들어진 도커 이미지가 영향을 줄 수 있다고 해서 사용하지 않는 이미지를 모두 삭제했습니다.
문제 원인은 아니었습니다.
명령어 : docker image prune -a
docker build 시에 --no-cache 옵션 주기
도커는 이미지 빌드 시에 중간 이미지를 자동으로 생성해서 재활용합니다. 이것 때문에 문제가 될 수 도 있다는 것을 봤습니다. cache된 중간 이미지를 사용하지 않도록 --no-cache 옵션을 줘서 빌드를 해봤습니다.
docker build --no-cache -t [이미지명] -f [도커파일명][도커파일 위치 디렉토리]
이것도 원인은 아니었습니다.