sh 파일 실행 오류 - boostcampwm2023/web07-GBS GitHub Wiki

문제 상황

exec /usr/local/ngix/conf/run.sh: no such file or directory

어제까지만 해도 잘 되던 Dockerfile이 빌드 후에 다음과 같은 에러 메시지를 출력했다.

해결 과정

  1. Docker Desktop으로 run.sh를 확인 해봤는데 잘 들어가 있다.

  2. Dockerfile 수정

    CMD ["/usr/local/nginx/conf/run.sh"]
    -> CMD ["cat", "/usr/local/nginx/conf/run.sh"]
    

    위처럼 바꿔본 결과 파일 내용도 잘 출력 된다.

  3. Dockerfile 수정

    CMD ["/usr/local/nginx/conf/run.sh"]
    -> CMD ["sh", "/usr/local/nginx/conf/run.sh"]
    

    이번엔 다른 에러가 발생한다.

  4. StackOverflow

    에러 메시지를 검색해보니 CRLF 때문에 발생하는 문제라고 나와있어

    LF로 바꿔보니 정상적으로 동작한다.

결론

윈도우의 CRLF 때문에 발생한 문제다.

bash 스크립트를 작성할 땐 LF로 설정돼있는지 잘 확인하자.