2017-01-26 8 views
5

मैं डॉकर-कंपोज़ के साथ बनाया गया एक ऐप तैनात करने की कोशिश कर रहा हूं, लेकिन ऐसा लगता है कि मैं पूरी तरह से गलत दिशा में जा रहा हूं।डॉकर-कंपोज़ कंटेनर को तैनात करना

  1. मेरे पास स्थानीय रूप से काम कर रहे सबकुछ हैं- docker-compose up मेरे ऐप को उपयुक्त नेटवर्क और होस्ट के साथ लाता है।
  2. मैं एक अलग मशीन .env फ़ाइल का उपयोग कर, उत्पादन मशीन पर कंटेनरों और नेटवर्क की एक ही कॉन्फ़िगरेशन चलाने में सक्षम होना चाहता हूं।

मेरे वर्तमान कार्यप्रवाह इस तरह दिखता है:

docker save [web image] [db image] > containers.tar 
zip deploy.zip containers.tar docker-compose.yml 
rsync deploy.zip [email protected] 

ssh [email protected]erver 
unzip deploy.zip ./ 
docker load -i containers.tar 

docker-compose up 

इस बिंदु पर, मैं docker-compose up फिर से चलाने के लिए जब वे वहाँ पाने में सक्षम होने की उम्मीद कर रही थी, लेकिन उस के अनुसार कंटेनर के पुनर्निर्माण की कोशिश करता है docker-compose.yml फ़ाइल।

मुझे अलग महसूस हो रहा है कि मुझे कुछ याद आ रहा है। क्या मुझे अपने पूर्ण आवेदन पर शिपिंग करना चाहिए और फिर सर्वर पर छवियों का निर्माण करना चाहिए? यदि आप रजिस्ट्री से छवियों को संग्रहीत/लोड कर रहे थे तो आप कंटेनर कैसे बना सकते हैं?

+0

मुझे डी से संबंधित कुछ भी नहीं दिख रहा है? – Bauss

+2

@ बाउस अच्छा पकड़, बस डॉकर टैग में प्रवेश करने के लिए टाइप किया गया। –

+1

मुझे समझ में नहीं आ रहा है, आप कहते हैं कि डॉकर-कंपोज़र कंटेनर को डॉकर-कंपोज़.इम से पुनर्निर्माण करने का प्रयास करता है, जो तब तक समझ में नहीं आता है जब तक कि कुछ ''build'' के साथ 'डॉकर-कंपोज़ अप' कहता है। मेरा एकमात्र विचार आपके प्रोड बॉक्स में 'डॉकर इमेज' होना है और छवि नामों और टैग को डॉकर-compose.yml में मेल करें। – Stratos

उत्तर

1

समस्या यह थी कि मैं विकास और उत्पादन में एक ही डॉकर-compose.yml फ़ाइल का उपयोग कर रहा था।

ऐप सेवा ने रिपॉजिटरी नाम या टैग निर्दिष्ट नहीं किया है, इसलिए जब मैंने सर्वर पर docker-compose up चलाया, तो उसने मेरे ऐप की स्रोत कोड निर्देशिका (जो सर्वर पर मौजूद नहीं है) में डॉकरफ़ाइल बनाने का प्रयास किया।

मैंने अपने स्थानीय डॉकर-compose.yml में एक स्पष्ट छवि फ़ील्ड जोड़कर समस्या को हल करना समाप्त कर दिया।

version: '2' 
services: 
    web: 
    image: 'my-private-docker-registry:latest' 
    # no build field! 

docker-compose build स्थानीय रूप से चलाने के बाद, वेब सेवा छवि भंडार नाम my-private-docker-registry और टैग latest साथ बनाया गया है:

version: '2' 
services: 
    web: 
    image: 'my-private-docker-registry:latest' 
    build: ./app 

तो उत्पादन के लिए एक वैकल्पिक लिखें फ़ाइल बनाई।

फिर यह छवि को रिपोजिटरी तक धक्का देने का एक मामला है।

docker push 'my-private-docker-registry:latest' 

और docker pull चल रहा है, इसे रोकने और चल रहा है कंटेनरों से बनाना, नए छवियों के साथ सुरक्षित है।

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