मल्टी-स्टेज बिल्ड्स

इंटरमीडिएट Docker

Mike Metzger

Data Engineering Consultant

सिंगल-स्टेज बिल्ड्स

  • सामान्य Docker इमेज एक ही FROM कमांड से बनती हैं
  • सोर्स इमेज में हर जोड़ स्पेस बढ़ाता है और प्रबंधन कठिन बनाता है
  • मान लीजिए कोई ऐप उपयोग से पहले कॉम्पाइल होना चाहिए
    • आप ज़रूरी कंपोनेंट्स इमेज में जोड़ें, कॉम्पाइल करें, और फिर फ़ाइनल इमेज कॉन्फ़िगर करें
    • इससे कई बार अनावश्यक कंटेंट इमेज में रह जाता है, चाहे वह उपयोग न हो
FROM ubuntu
RUN apt update
RUN apt install gcc -y
...
RUN make
CMD ["data_app"]
इंटरमीडिएट Docker

मल्टी-स्टेज बिल्ड्स

  • मल्टी-स्टेज बिल्ड्स में कई कंटेनर होते हैं
  • आमतौर पर एक या अधिक बिल्ड स्टेज होते हैं
  • अंतिम कंपोनेंट्स फ़ाइनल कंटेनर इमेज में कॉपी किए जाते हैं
  • फिर बिल्ड स्टेज अपने-आप हटा दिए जाते हैं
    • स्पेस बचता है और कंटेनर इमेज का साइज कम होता है
  • Dockerfile में कुछ अतिरिक्त सिंटैक्स लगता है
    • AS <alias>
    • COPY --from=<alias>
इंटरमीडिएट Docker

मल्टी-स्टेज बिल्ड उदाहरण

# Create initial build stage
FROM ubuntu AS stage1

# Install compiler and compile code RUN apt install gcc -y ... RUN make
# Start new stage to create final image FROM alpine-base
# Copy from first stage to final COPY --from=stage1 /data_app /data_app
# Run application on container start CMD ["data_app"]
इंटरमीडिएट Docker

अभ्यास करते हैं!

इंटरमीडिएट Docker

Preparing Video For Download...