인프런 커뮤니티 질문&답변

lee308812님의 프로필 이미지

작성한 질문수

개발자를 위한 쉬운 도커

Windows 환경에서 섹션9 도커 컴포즈 - Leafy 도커 컴포즈 실행 오류 관련 문의

해결된 질문

24.03.03 00:29 작성

·

559

·

수정됨

2

안녕하세요, 먼저 좋은 강의 만들어주셔서 감사합니다 ^^

 

강의&실습을 진행하다가 Windows 10 Home 환경에서 실습 예제가 잘 실행되지 않는 문제가 있어서 문의드립니다.

 

easydocker/leafy에서 07-compose 브랜치(docker-compose.yml 완성된 브랜치)로 체크아웃 후, docker compose up -d로 도커 컴포즈를 실행하면 front 쪽에서 아래와 같은 오류가 발생하고 컨테이너 실행이 되지 않습니다.

 

exec /usr/local/bin/docker-entrypoint.sh: no such file or directory

 

혹시 해결방법이 있을지 문의드려요~

 

윈도우 개행문자 처리 관련 문제일 것 같아서 git config --global core.autocrlf true 설정 후 다시 git clone을 받아도 안되고 구글링을 해봐도 딱히 해결방법이 안나오네요 ㅠㅠ 

 

이미 완성된 07-compose 브랜치로 실행했을 때도 동작하지 않긴 하지만 혹시나 해서 docker-compose.yml & 프론트쪽 Dockerfile 부분 첨부드립니다.

 

감사합니다.

 

답변 4

1

데브위키님의 프로필 이미지
데브위키
지식공유자

2024. 03. 11. 00:45

안녕하세요, 데브위키입니다.

먼저 강의 수강에 불편을 드려 죄송합니다!

윈도우 환경에서 테스트해보니 COPY 지시어로 /usr/local/bin 경로에 docker-entrypoint.sh 파일이 복사되었음에도 실행이 되지 않는 문제를 확인했습니다.

 

문제를 확인해보니 스크립트가 여러 줄이 있는 상태에서 윈도우에서 작성 된 파일의 개행 문자가 있을 경우 쉘 스크립트가 인식되지 않는 문제가 있다고 하네요.

 

윈도우 시스템에서는 개행(줄바꿈) 문자가 CRLF(Carriage Return followed by Line Feed) 방식이고, 리눅스에서는 LF(Line Feed) 방식을 사용하기 때문에, CRLF 방식으로 작성된 파일은 컨테이너 환경에서 제대로 인식되지 않는 문제로 확인했습니다.

 

파일은 수정하여 소스코드에 반영해 두었습니다. git pull 받으신 후 실행하셔도 되고, Leafy 도커 컴포즈 강의에 첨부드린 파일을 다운로드해서 leafy-frontend 폴더에 덮어쓰기 하신 후 실행하셔도 됩니다!

 

그리고 직접 수정하실 수 있는 방법도 함께 첨부 드립니다.

image

문제를 공유해주셔서 다른 수강생 분들께도 많은 도움이 될 것 같습니다. 감사합니다!

더 궁금하신 점이 있으면 언제든 편하게 질문 부탁드립니다 🙂

lee308812님의 프로필 이미지
lee308812
질문자

2024. 03. 11. 21:51

감사합니다! 알려주신 방법으로 재시도하니까 정상적으로 동작하네요~!

1

데브위키님의 프로필 이미지
데브위키
지식공유자

2024. 03. 06. 00:54

lee308812님 안녕하세요, 데브위키입니다.

도커파일에서 COPY가 제대로 수행되지 않은 것으로 보이는데, 제가 윈도우 환경에서 조금 더 테스트 해보고 답변 드리겠습니다!

lee308812님의 프로필 이미지
lee308812
질문자

2024. 03. 06. 10:18

넵 부탁드리겠습니다~! ^^ 감사합니다.

0

정민우(Jhung)님의 프로필 이미지

2024. 03. 10. 13:07

저도 윈도우즈 환경인데 동일한 에러가 발생하네요 ㅠㅜ

0

인프런 AI 인턴님의 프로필 이미지

2024. 03. 05. 00:32

안녕하세요, 인프런 AI 인턴입니다.

lee308812님, 먼저 강의 수강 중에 발생한 문제 때문에 불편을 느끼셨다니 제가 도움을 드릴 수 있으면 좋겠습니다.

Windows 10 Home 환경에서 docker-entrypoint.sh 파일을 찾지 못하는 문제는 보통 파일 경로 문제나 파일 자체의 접근 권한 문제 때문에 발생할 수 있습니다. 이 문제를 해결하기 위한 몇 가지 해결 방법을 제안드리겠습니다.

  1. docker-entrypoint.sh 파일이 존재하는지 확인해 보세요. Git으로 프로젝트를 복제할 때 해당 파일이 제대로 복제되었는지 확인 필요합니다.

  2. 파일 경로에 문제가 있을 수 있습니다. Dockerfile 내의 ENTRYPOINT 지시문에 정확한 파일 경로가 지정되었는지 확인해주세요.

  3. docker-entrypoint.sh 파일의 권한이 실행 가능하도록 설정되어 있는지 확인이 필요합니다. 해당 파일에 실행 권한을 주기 위해서는 chmod +x /path/to/docker-entrypoint.sh 명령을 사용해주세요.

  4. Windows 환경에서 개행 문자(CRLF)와 리눅스 환경의 개행 문자(LF)가 다른데, 이것이 문제를 일으킬 수 있습니다. 본문에서 언급한대로 Git 설정을 조정하셨으니 이 부분은 해결되었을 것으로 보입니다만, 혹시 이전에 복제한 프로젝트에 영향을 받았을 수 있으니, 전체 프로젝트 디렉터리를 삭제한 뒤 git clone을 다시 해보는 것도 시도할 수 있습니다.

만약 위 방법으로 문제가 해결되지 않는다면, 문제가 발생하는 docker-compose.yml 파일과 프론트쪽 Dockerfile 설정을 더 자세히 확인해봐야 할 것 같습니다. 혹시 문제가 계속된다면 해당 파일의 내용을 함께 첨부해 주시면 좀 더 정확한 해결책을 제시해 드릴 수 있을 것 같습니다.

도움이 필요하면 언제든 문의해 주세요. Lee308812님의 문제가 빠르게 해결되기를 바랍니다.