मुझे कंपनी में देव ओप्स द्वारा पूछा गया है, मैं डॉकर के साथ कुछ अलग करने के लिए काम कर रहा हूं, फिर भी इसका उपयोग किया जाता है।नामित करने के लिए नामांकित डॉकर वॉल्यूम
कंटेनर एक:: नोड कंटेनर कि दृश्यपटल का निर्माण करेगा आवेदन प्रतिक्रिया और एक निर्देशिका app/dist/
बुलाया में बंडल जगह लक्ष्य निम्नलिखित जिम्मेदारियों के साथ 2 कंटेनर है। जब यह पूरा हो जाता है, तो कंटेनर चलना बंद कर देगा।
कंटेनर बी: एक अल्पाइन nginx कंटेनर जो /usr/share/nginx/html/app
से स्थैतिक फ़ाइलों को सर्वर करेगा।
कंटेनर ए में निर्मित फाइलें कंटेनर बी को एक वॉल्यूम का उपयोग करके प्रदान की जाएंगी जो <Container A>/app/dist
से <Container B>/usr/share/nginx/html/app
पर माउंट होगी।
कृपया ध्यान दें कि सार्वजनिक सुलभ बंदरगाह और nginx कंटेनर के बीच एक हैप्रोक्सी परत है जो app
नामक कंटेनर है।
कार्यों के ऊपर एक डोकर लिखें फ़ाइल जो ऐसा दिखाई देता का उपयोग कर ऑर्केस्ट्रेटेड किया जा रहा है:
version: '2'
volumes:
webapp_build_volume: {}
services:
webapp_build:
build:
context: .
dockerfile: 'config/nginx/dockerfile-builder'
volumes:
- webapp_build_volume:/app/dist
- webapp_static_volume:/app/src/app/static
app:
build:
context: 'config/haproxy'
dockerfile: 'dockerfile-app-haproxy'
links:
- web
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- '80:80'
- '1936:1936'
web:
build:
context: .
dockerfile: 'config/nginx/dockerfile-web'
environment:
- EXCLUDE_PORTS=443
- VIRTUAL_HOST=*
depends_on:
- webapp_build
volumes:
- webapp_build_volume:/usr/share/nginx/html/app
यह वर्तमान में केवल पहली बार डोकर लिखें फ़ाइल बनाया गया है काम कर रहा है। वॉल्यूम बनने के बाद वॉल्यूम में फ़ाइलें अब अपडेट नहीं होती हैं। मैंने पढ़ा है कि नामित वॉल्यूम्स को स्थापित करने के बाद अपडेट नहीं किया जा सकता है लेकिन मैं इसकी पुष्टि नहीं कर सकता। मुझे चारों ओर काम मिल गया है जिसमें docker-compose rm --force && docker volume webapp_build rm
चल रहा है, लेकिन यदि संभव हो तो मैं कैश किए गए कंटेनरों को मारना नहीं चाहता क्योंकि सीआई सेवा बहुत धीमी हो जाएगी।
कृपया मुझे बताएं कि क्या मैं कुछ भी स्पष्ट कर सकता हूं (मुझे समझ में आता है कि यहां बहुत सारे चल रहे हिस्सों हैं)। कृपया ध्यान दें कि मैं डॉकर 2 बीटा का भी उपयोग कर रहा हूं हालांकि मुझे नहीं लगता कि यह मेरे द्वारा किए गए कुछ भी कैसे बदल सकता है।
समाधान 1 कोशिश कर रहा है अब। आपको जल्द ही बताएगा! – Shawn
धन्यवाद। आपका पहला समाधान वहां काम करता था। यह वॉल्यूम को अपडेट करने का कारण क्यों बनाता है लेकिन निर्देशिका में निर्माण नहीं किया गया था? – Shawn
आपने निर्देशिका में निर्माण किया था, लेकिन निर्माण के दौरान आपकी मात्रा को आरोहित नहीं किया गया था, यह तब होता है जब आप कंटेनर चलाते हैं। जब आप चल रहे कंटेनर में वॉल्यूम को माउंट करते हैं, तो डॉकर केवल आपकी छवि से सामग्री को वॉल्यूम में कॉपी करता है जब आपकी वॉल्यूम खाली होती है, और बाद में चलती है, वॉल्यूम का प्रारंभिक चरण नहीं किया जाता है (अन्यथा आप इसे नष्ट कर देंगे सामग्री जब आप दूसरे कंटेनर में अपनी मात्रा का उपयोग करने की कोशिश की)। – BMitch