From 5cc255d8df4f015f20568255834d15d35fc32182 Mon Sep 17 00:00:00 2001 From: johngreen Date: Fri, 1 May 2026 19:09:21 +0900 Subject: [PATCH] =?UTF-8?q?build(docker-dev):=20Windows=20=EB=B0=94?= =?UTF-8?q?=EC=9D=B8=EB=93=9C=EB=A7=88=EC=9A=B4=ED=8A=B8=EC=97=90=EC=84=9C?= =?UTF-8?q?=20gradlew=20=EC=8B=A4=ED=96=89=20=EB=B3=B4=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - backend-spring.Dockerfile: CMD에 sh ./gradlew 명시 호출 — 호스트가 Windows일 때 바인드마운트가 빌드 시점 chmod +x를 덮어쓰면서 ./gradlew가 실행 비트 없이 매핑되는 문제 해결. Linux/Mac 환경에도 동일하게 동작. - .gitattributes 신규: gradlew와 *.sh 를 eol=lf 로 고정해 Windows core.autocrlf=true 환경에서 CRLF 변환으로 컨테이너 내 sh 파싱이 깨지는 문제 재발 방지. Co-Authored-By: Claude Opus 4.7 (1M context) --- .gitattributes | 4 ++++ docker/dev/backend-spring.Dockerfile | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..c481e17e --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +# Force LF for shell scripts and Gradle wrapper so they work in Linux containers +# regardless of host autocrlf settings. +*.sh text eol=lf +gradlew text eol=lf diff --git a/docker/dev/backend-spring.Dockerfile b/docker/dev/backend-spring.Dockerfile index 65ead131..c7fc46a4 100644 --- a/docker/dev/backend-spring.Dockerfile +++ b/docker/dev/backend-spring.Dockerfile @@ -24,4 +24,4 @@ EXPOSE 8081 # 백그라운드: `./gradlew classes -t` 가 .java 변경 감지해 .class 재컴파일 # 포그라운드: `./gradlew bootRun` 이 앱 실행, DevTools 가 build/classes 변경 감지해 자동 리로드 # 주의: --continuous 는 gradle daemon 필요 → --no-daemon 제거 -CMD ["sh", "-c", "./gradlew classes -t & exec ./gradlew bootRun"] +CMD ["sh", "-c", "sh ./gradlew classes -t & exec sh ./gradlew bootRun"]