Dockerfile build 오류(apt-get 오류)

roon2020·2021년 3월 14일
0

docker

목록 보기
4/4
post-thumbnail

Dockerfile을 빌드할 때 apt-get update에서 오류가 발생했습니다.

Dockerfile

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로 바꿔줘서 해결했습니다.

처음에 문제가 무엇인지 파악 못해서 여러 가지를 시도해봤습니다.

  1. /etc/apt/sources.list 수정
    여기서 restrict로 되어 있는 부분을 모두 trusty로 바꿔줬습니다.
    생각해 보면 디폴트 설정을 아무것도 건드리지 않았는데 이 부분이 문제가 있다면 그것도 문제입니다..

  2. 필요없는 이미지 삭제
    기존에 ubuntu를 이용해서 만들어진 도커 이미지가 영향을 줄 수 있다고 해서 사용하지 않는 이미지를 모두 삭제했습니다.
    문제 원인은 아니었습니다.

    명령어 : docker image prune -a

  3. docker build 시에 --no-cache 옵션 주기
    도커는 이미지 빌드 시에 중간 이미지를 자동으로 생성해서 재활용합니다. 이것 때문에 문제가 될 수 도 있다는 것을 봤습니다. cache된 중간 이미지를 사용하지 않도록 --no-cache 옵션을 줘서 빌드를 해봤습니다.

    docker build --no-cache -t [이미지명] -f [도커파일명][도커파일 위치 디렉토리]

이것도 원인은 아니었습니다.

  1. ubuntu에서 네트워크 설정이 문제?
    ping을 수행해보니 정상적인 TTL을 반환했습니다.
  1. 우분투 레포지토리에 문제가 생긴걸까?
    이런 생각도 해봤습니다. 왜냐하면 오류메시지에 나오는 링크로 가보니 최근 업데이트 날짜가 오늘이었기 때문입니다. 이런 가능성은 거의 없을텐데 너무 원인을 못찾으니 이런 생각도 하게 되네요.
profile
keep in positive mindset. I've got this.

0개의 댓글