Dockerfile이란?
Dockerfile은 Docker 이미지를 생성하기 위한 설정 파일이다.
프로젝트를 Docker 컨테이너에서 실행하기 위해 어떤 운영체제를 사용할 것인지, 어떤 JDK를 사용할 것인지, 애플리케이션을 어디에 복사하고 실행할 것인지 등을 Dockerfile에 정의해야 한다.
Dockerfile 작성
# ===== Build Stage ===== ---> Gradle과 JDK 21이 포함된 이미지를 사용해 애플리케이션 빌드
FROM gradle:8.14.5-jdk21 AS builder
WORKDIR /app ---> 작업 디렉터리 지정
#Gradle 파일 복사
COPY build.gradle settings.gradle gradlew ./
COPY gradle ./gradle
---> Gradle Wrapper와 설정 파일만 먼저 복사 : 의존성이 변경되지 않는 경우 빌드 시간 단축
#의존성 캐싱
RUN ./gradlew dependencies --no-daemon || true
#소스 복사
COPY src ./src ---> 애플리케이션 소스 코드를 컨테이너 내부로 복사
#애플리케이션 빌드
RUN ./gradlew bootJar --no-daemon ---> Spring boot 빌드
#=====Run Stage=====
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=builder /app/build/libs/*.jar app.jar
EXPOSE 8080 ---> 포트 개방
ENTRYPOINT ["java", "-jar", "app.jar"]
로컬 테스트
이미지 생성하기
docker build -t three-servings .
컨테이너 실행하기 (프로젝트 초기에는 DB 연동이 안되어 있기 때문에 에러 뜸!!)
docker run -p 8080:8080 three-servings'Project > 삼인분' 카테고리의 다른 글
| [Infra] 운영 서버 메모리와 Swap 필요성 (0) | 2026.07.15 |
|---|---|
| [결제 도메인] 프로젝트 피드백 및 배운 점 (0) | 2026.07.14 |
| [Infra: AWS] Docker Hub를 활용한 EC2 배포 환경 구축 (AWS EC2 + Docker + Docker Hub) (0) | 2026.07.07 |
| [Infra: Docker] docker compose 만들기 (0) | 2026.07.07 |
| [Infra] 인프라 아키텍처 설계하기 (0) | 2026.07.02 |
