Search

[Docker] docker build : File does not exist

요약
Docker 이미지 빌드 과정에서 발생하는 File does not exist 오류에 대한 해결책
썸네일
https://noticon-static.tammolo.com/dgggcrkxq/image/upload/v1629971846/noticon/crjjlhchk9mxrflhqf8n.png
작성일자
2024/04/13 13:56
수정일자
2024/05/03 12:04
스택
Docker
카테고리
TroubleShooting
태그
Dockerfile

문제

Dockerfile을 이용하여 도커 이미지를 빌드하는 과정에서 “File does not exist” 라는 오류 메시지와 함께 빌드가 되지 않는 경우가 종종 존재함
파일은 존재하는데 이런 경우가 벌어질 경우엔 대부분 Dockerfile Context 의 최상위 디렉토리에서 COPY 키워드를 잘못 사용하고 있을 가능성이 높음

해결 방법

TL;DR

COPY 대신 ADD 키워드를 사용할 것

설명

Dockerfile 에서 사용할 수 있는 COPY 키워드는 하위 디렉토리의 구조를 완벽하게 지켜주지 않음
그 이유는 Dockerfile reference 에 적혀 있는데, COPY 키워드를 사용할 때 <src>가 디렉토리일 경우 해당 디렉토리 자체가 아닌 디렉토리 안의 내용 만을 복사한다고 적혀있음
이하는 Dockerfile reference 에 적혀있는 COPY 키워드에 대한 Note 내용을 발췌한 내용임
The directory itself isn't copied, only its contents.
Dockerfile 에서는 COPY 사용을 권장하지만 하위 디렉토리 구조가 반드시 맞춰져야 하는 경우라면 ADD 명령어를 사용할 경우 문제를 해결할 수 있음

참조