개론
- 도커 컨테이너상에서 다음과같은 기능을 만들고자했다.
- 프로젝트 개발하면서 ngnix에서 logrotate를 사용해 로그파일 관리를 하는 것
- 스프링 서버 애플리케이션을 도커 컨테이너 내부에서 빌드해서 사용하는 것.
- 그런데 두가지 모두 설정파일을 컨테이너에 옮기면서 문제가 발생했다.
- logrotate는 /etc/logrotate.d/nginx 설정파일을 읽을 때 오류가 발생.
- 스프링 서버 애플리케이션 빌드할 때는 gradlew를 읽지 못하는 문제 발생.
결론
- 단순한 이유였다.
- 윈도우와 유닉스(리눅스)의 개행 방식 차이
- 유닉스의 경우 LF로 개행하지만 윈도우는 CRLF로 개행.
- 그래서 도커 컨테이너에 설정 파일을 COPY시킬 때 문제가 생겼던 것.
해결 방안
dos2unix command 사용
ex)RUN dos2unix /etc/logrotate.d/nginx
이렇게하면 개행문자를 CRLF에서 LF로 변경시켜준다.
- 그냥 WSL 환경에서 개발
이게 훨씬 낫다.,..