पाठ 37 / 38
Spring Boot ऐप को कंटेनराइज़ करना
मल्टी-स्टेज बिल्ड से Java सेवा को Docker इमेज में पैक करें, और समझें JAR को layer करना तेज़, कैश-अनुकूल rebuild के लिए क्यों मायने रखता है।
कंटेनराइज़ क्यों करें
कंटेनर इमेज ऐप, JRE, और OS लाइब्रेरी को एक अपरिवर्तनीय, पोर्टेबल इकाई में बंडल करती है — "मेरे कंप्यूटर पर चलता है" अब "इसी इमेज में चलता है" बन जाता है, जहाँ भी वह इमेज चले। यह Kubernetes व अधिकांश क्लाउड प्लेटफ़ॉर्म की मानक डिप्लॉयमेंट इकाई है।
न्यूनतम Dockerfile
मल्टी-स्टेज बिल्ड पहले चरण में पूर्ण JDK इमेज से कंपाइल करता है, फिर बना हुआ JAR ही एक हल्की JRE-केवल रनटाइम इमेज में कॉपी करता है — भेजी गई इमेज में Maven, सोर्स कोड या बिल्ड टूल नहीं होते।
FROM eclipse-temurin:21-jdk AS build
WORKDIR /app
COPY . .
RUN ./mvnw -q package -DskipTests
FROM eclipse-temurin:21-jre
WORKDIR /app
COPY --from=build /app/target/orders-service.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]