Dockerfile
애플리케이션 구동에 필요한 런타임(JRE), 환경 변수, 파일 시스템 구조, 실행 명령어 등을 코드로 정의한 스크립트. 이를 통해 빌드 프로세스의 재현성(Reproducibility)을 보장
- 이미지는 불변 상태를 유지하므로, 한 번 빌드된 이미지는 어느 환경에서든 동일한 동작을 보장
- 레이어 캐싱 기능을 통해 변경된 부분만 다시 빌드하므로 CI/CD 파이프라인의 효율성을 극대화
FROM eclipse-temurin:21-jdk
WORKDIR /app
COPY build/libs/*-SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
분산 처리 환경에서 Docker가 필수적인 이유
의존성 충돌 문제에서 벗어날 수 있고 각 서비스를 독립된 환경에서 구동하기 위해 컨테이너 가상화 기술인 Docker를 도입
불변 인프라를 구현하여 어디서든 동일환 환경에서 실행됨을 보장
트래픽이 몰릴 상황에서 유연하게 서버를 늘려 확장 가능
Docker 도입은 단순한 배포 편의성을 넘어, Cloud-Native 아키텍처로 가기 위한 필수 과정
서비스가 수십 개로 늘어난 후 도커 컨테이너들을 오케스트레이션하는 Kubernetes(K8s) 환경으로 배포
build: API Gateway 서비스 Dockerfile 추가 by 0hj1hyeon · Pull Request #10 · 0hj1hyeon/distributed
API Gateway 서비스의 Docker 빌드 환경을 구축 eclipse-temurin:21-jdk 사용
github.com
'분산 처리 환경' 카테고리의 다른 글
| 스프링 분산 처리 환경 13: Docker Compose (0) | 2025.12.19 |
|---|---|
| 스프링 분산 처리 환경 12: Kubernetes (0) | 2025.12.18 |
| 스프링 분산 처리 환경 10: 중간 정리 (0) | 2025.11.23 |
| 스프링 분산 처리 환경 9: Resilience4j 서킷 브레이커 적용 (0) | 2025.11.21 |
| 스프링 분산 처리 환경 8: Spring Cloud Gateway, JWT 인가 필터 및 경로별 라우팅 검증 테스트 (1) | 2025.11.19 |