docker compose command에서 나타나는 쉘 스크립트 오류!
GitHub에서 소스코드를 내려받았는데, 이런 오류와 함께 쉘 스크립트 파일이 실행되지 않는다면?
줄바꿈이 문제인 것이다.
윈도우는 CRLF를 사용하고, 맥/리눅스는 LF를 사용한다.
lf will be replaced by crlf in entrypoint.sh
아마 Git add나 commit을 했을 때 이런 경고 메시지도 같이 봤을 것이다.
해결 방법
autocrlf를 사용할 수도 있지만, 솔직히 나랑 팀원들은 이 명령어를 실행시켰을 때 별 차이가 없었다...;;
왜냐하면 이렇게 되더라도 결국 팀원들 컴퓨터는 윈도우고, 직접 파일의 줄 바꿈 설정을 LF으로 변경한 뒤(Visual Studio Code에서는 오른쪽 아래에서 변경할 수 있다), 일일히 줄 바꿈을 다시 해주어야 정상적으로 실행됐기 때문이다.
그래서 우리는 쉘 스크립트 파일을 없애고, docker-compose의 command에 그대로 명령어를 집어넣는 것으로 해결했다.
docker-compose.yml
command: bash -c "
yarn install &&
yarn build"
# command: sh entrypoint.s
해당 컨테이너의 command부분을 쉘 스크립트 파일 대신 직접 입력하는 걸로 대체했다.
이렇게 하면 적어도 줄바꿈 오류는 나지 않는다. yml이 쓰는 명령어 길이에 따라 길어질 수는 있겠지만...
다른 해결 방법
굳이 일일히 줄바꿈을 하는 방법도 있습니다.
Visual Studio Code의 경우 하단에 줄바꿈을 직접 선택할 수 있어요.
오른쪽 아래에 보면 CRLF가 보이시나요, 이 부분을 클릭하면
줄바꿈을 선택할 수 있습니다! 이때 쉘 스크립트 파일이면 LF를 선택하고,
각 줄의 명령어마다 엔터를 손수 다시 쳐주면....
실행이 잘 됩니다 ^_^....
이런 방법도 있고, 그냥 쉘 스크립트파일을 따로 공유하는 방법도 있습니다.
'Computer Science > Troubleshooting' 카테고리의 다른 글
[Unity, Firebase, C#] ERROR CS1061 (0) | 2023.05.07 |
---|---|
[Django, Docker] django.db.utils.operationalerror (2002 can't connect to mysql server on 'db' (115) ) (0) | 2022.09.26 |
[Gunicorn] gunicorn worker timeout (0) | 2022.09.09 |
[Nginx, Django] Nginx로 Django media url 지정하기 (1) | 2022.09.04 |
[Docker-compose, MySQL] M1 환경에서 MySQL 이미지 이용하기 (0) | 2022.09.01 |