2017-02-20 9 views
13

मैं संस्करण 3 में निर्दिष्ट सेवाओं के लिए CPU & स्मृति निर्दिष्ट करने में असमर्थ हूं।डॉकर कंपोज़ संस्करण 3 मेमोरी और सीपीयू सीमा को कैसे निर्दिष्ट करें 3

संस्करण 2 के साथ यह सेवाओं के तहत "mem_limit" & "cpu_shares" पैरामीटर के साथ ठीक काम करता है। लेकिन यह संस्करण 3 का उपयोग करते समय विफल रहता है, उन्हें अनुभाग को तैनात करने के तहत डालने योग्य नहीं लगता है जब तक कि मैं स्वार मोड का उपयोग नहीं कर रहा हूं।

क्या कोई मदद कर सकता है?

version: "3" 
services: 
    node: 
    build: 
    context: . 
     dockerfile: ./docker-build/Dockerfile.node 
    restart: always 
    environment: 
     - VIRTUAL_HOST=localhost 
    volumes: 
     - logs:/app/out/ 
    expose: 
     - 8083 
    command: ["npm","start"] 
    cap_drop: 
     - NET_ADMIN 
     - SYS_ADMIN 

उत्तर

6
deploy: 
    resources: 
    limits: 
     cpus: '0.001' 
     memory: 50M 
    reservations: 
     cpus: '0.0001' 
     memory: 20M 

अधिक: https://docs.docker.com/compose/compose-file/#/resources

आप में विशिष्ट मामले:

version: "3" 
services: 
    node: 
    image: USER/You-Pre-Build-Image 
    environment: 
     - VIRTUAL_HOST=localhost 
    volumes: 
     - logs:/app/out/ 
    command: ["npm","start"] 
    cap_drop: 
     - NET_ADMIN 
     - SYS_ADMIN 
    deploy: 
     resources: 
     limits: 
      cpus: '0.001' 
      memory: 50M 
     reservations: 
      cpus: '0.0001' 
      memory: 20M 

volumes: 
    - logs 

networks: 
    default: 
    driver: overlay 

नोट:

  • आवश्यक नहीं पर्दाफाश, पर डिफ़ॉल्ट प्रति संपर्क में आएंगे आपका ढेर नेटवर्क
  • छवियों को पूर्व-निर्मित होना चाहिए। वी 3 के भीतर Buil संभव नहीं
  • "पुनरारंभ" भी डिक्रिप्ट किया गया है। यू ऑन-विफलता कार्रवाई के साथ तैनाती के तहत पुन: प्रारंभ करने का उपयोग कर सकते
  • आप (यदि सभी नहीं) एक स्वसंपूर्ण एक नोड "झुंड", सबसे सुधार v3 का उपयोग कर सकते हैं झुंड

लिए कर रहे हैं इसके अलावा नोट: में नेटवर्क स्वर्ग मोड पुल नहीं है। यदि आप केवल आंतरिक रूप से कनेक्ट करना चाहते हैं, तो आपको नेटवर्क से अटैचमेंट करना होगा। आप 1) एक अन्य रचना फ़ाइल के भीतर एक बाहरी नेटवर्क निर्दिष्ट कर सकते हैं, या नेटवर्क को --attachable पैरामीटर (डॉकर नेटवर्क बनाने-डी ओवरले My-Network --attachable) के साथ नेटवर्क बनाना है अन्यथा आपको पोर्ट को प्रकाशित करना होगा जैसे:

ports: 
    - 80:80 
+1

1. मैं संस्करण 3 का उपयोग कर छवियों को बनाने में सक्षम हूं।
2. ऐसा लगता है कि v3 के लिए दृष्टिकोण v2 से बिल्कुल अलग है, अपग्रेड की तरह नहीं।
3. तैनाती केवल झुंड मोड में काम कर रही प्रतीत होती है। मुझे चेतावनियां मिल रही हैं -
"चेतावनी: कुछ सेवाएं (नोड) 'तैनाती' कुंजी का उपयोग करती हैं, जिसे अनदेखा किया जाएगा। रचना तैनाती विन्यास का समर्थन नहीं करती है - एक झुंड पर तैनात करने के लिए 'डॉकर स्टैक तैनाती' का उपयोग करें। – vivekyad4v

+2

@ viveky4d4v लिखें प्रारूप v3 दस्तावेज़ कहता है, यदि आप स्वार का उपयोग नहीं कर रहे हैं तो 'तैनाती' को अनदेखा किया जाता है। जब तक आप स्वार का उपयोग नहीं कर रहे हैं तब तक v3 प्रारूप का उपयोग करने का कोई कारण नहीं है। –

+0

@DanLowe हम स्वयं रचना में हेल्थ चेक प्रदान करना चाहते थे जो केवल v3 में समर्थित है। लेकिन मुझे लगता है कि मैं इसके बिना जीवित रह सकता हूं। मैं मानता हूं कि अब v3 पर जाने का अर्थ नहीं है। – vivekyad4v

संबंधित मुद्दे