docker-compose up --build
명령을 사용했을때 발생하는 
failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount277479487/Dockerfile: no such file or directory  
오류는,
도커컴포즈 파일에 명시한 경로에서 도커파일을 찾지 못했을때 발생합니다.
먼저 도커파일이 해당 경로에 있는지 확인하고, 대소문자등 틀린 부분이 없나 확인해줍니다.
그래도 문제가 해결되지 않을경우,
혹시 도커파일을 새 텍스트파일 만들기 등으로 만들었다가 .txt를 지워버린 형태로 생성하지는 않았나 생각해봅니다.
해당 파일을 지우고, IDE에서 새 파일 만들기로 도커파일을 다시 만든 후에 컴포즈 up 명령을 실행해봅니다.
 

1. 파일 확장자 문제

.txt로 만들었다가 확장자를 지우는게 안되는 이유:

Windows 탐색기에서 파일을 생성할 때 파일 확장자가 숨겨진 경우가 많습니다. 이로 인해, Dockerfile을 생성할 때 .txt 확장자가 자동으로 추가될 수 있습니다. 사용자가 Dockerfile이라고 이름을 변경해도 실제 파일 이름은 Dockerfile.txt로 남아 있을 수 있습니다.

이 경우, 파일 탐색기에서는 Dockerfile로 보이지만, 내부적으로는 여전히 텍스트 파일로 인식되기 때문에 도커가 이를 Dockerfile로 인식하지 못합니다.

 

2. 파일 형식 문제

텍스트 편집기에서 파일을 저장할 때, 파일의 형식이 중요합니다. Windows의 메모장이나 다른 텍스트 편집기는 기본적으로 파일을 UTF-16 형식으로 저장할 수 있으며, 도커 빌드는 UTF-8 형식을 기대할 때 문제가 발생할 수 있습니다.

다음은 이 문제와 관련된 몇 가지 사항입니다:

  • 텍스트 인코딩: Dockerfile을 UTF-8 형식으로 저장해야 합니다. 많은 IDE는 파일을 기본적으로 UTF-8 형식으로 저장하지만, Windows 메모장 등은 그렇지 않을 수 있습니다.
  • 파일 끝에 숨겨진 문서 헤더: 메모장 등 일부 편집기는 파일 시작 부분에 숨겨진 BOM (Byte Order Mark)을 추가할 수 있습니다. 이것이 도커가 파일을 읽는 데 문제를 일으킬 수 있습니다.

+ Recent posts