दिलचस्प पोस्ट
क्या प्लेटफार्मों में कुछ 8-बिट वर्णों के अलावा कुछ है? संगीतकार चाहिए.लोक को संस्करण नियंत्रण के लिए प्रतिबद्ध किया जाना चाहिए? ASP.NET से सभी ब्राउज़र के लिए ब्राउज़र कैशिंग अक्षम करना आप ".NET फ्रेमवर्क स्रोत को सक्षम करने" को कैसे सक्षम करते हैं? R: gsub का उपयोग कर वर्णों को प्रतिस्थापित करना, फ़ंक्शन कैसे बनाएं? कॉन्फ़िगरेशन फ़ाइल को कैसे स्टोर करें और इसे रीएक्ट के जरिए पढ़ें कैसे एक DOM तत्व की प्रदर्शन संपत्ति को प्राप्त करने के लिए? कैसे PHP में वीडियो अवधि, आयाम और आकार प्राप्त करें? लक्ष्य: पहले और: के बाद छद्म तत्वों के साथ jQuery "2 के पूरक" क्या है? एंड्रॉइड एमुलेटर पर Google मानचित्र v2 चलाना सेलेनियम वेब ड्रिवर और जावा रोबोट क्लास का उपयोग करके फ़ाइल अपलोड करें Keras प्रशिक्षण डेटा आकार misinterprets एंड्रॉइड: रेडियो समूह – ईवेंट श्रोता को कॉन्फ़िगर कैसे करें हम एक एसक्यूएल-एस्क "लीख" मानदंड का उपयोग करके दो स्पार्क एसक्यूएल डाटाफ्रेम कैसे जुड़ सकते हैं?

डॉकरफाइल के साथ निजी जीआईटी रेपो क्लोन करें

मैंने इस कोड की प्रतिलिपि बनाई है जो चारों ओर विभिन्न कार्य डॉकफेफाइल हैं, यहां मेरा है:

FROM ubuntu MAINTAINER Luke Crooks "luke@pumalo.org" # Update aptitude with new repo RUN apt-get update # Install software RUN apt-get install -y git python-virtualenv # Make ssh dir RUN mkdir /root/.ssh/ # Copy over private key, and set permissions ADD id_rsa /root/.ssh/id_rsa RUN chmod 700 /root/.ssh/id_rsa RUN chown -R root:root /root/.ssh # Create known_hosts RUN touch /root/.ssh/known_hosts # Remove host checking RUN echo "Host bitbucket.org\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config # Clone the conf files into the docker container RUN git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf 

यह मुझे त्रुटि देता है

 Step 10 : RUN git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf ---> Running in 0d244d812a54 Cloning into '/home/docker-conf'... Warning: Permanently added 'bitbucket.org,131.103.20.167' (RSA) to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 2014/04/30 16:07:28 The command [/bin/sh -c git clone git@bitbucket.org:Pumalo/docker-conf.git /home/docker-conf] returned a non-zero code: 128 

यह मेरी पहली बार डॉकरफाइल का उपयोग कर रहा है, लेकिन मैंने जो पढ़ा है (और काम करने वाले कॉन्फ़िगेंस से लिया गया है) से मैं यह नहीं देख सकता कि यह क्यों काम नहीं करता है

मेरी id_rsa मेरे डॉकरफाइल के समान फ़ोल्डर में है और यह मेरी स्थानीय कुंजी की एक प्रति है जो इस रेपो समस्या को क्लोन कर सकता है

संपादित करें:

मेरे डॉकरफ़ाइल में मैं जोड़ सकते हैं:

 RUN cat /root/.ssh/id_rsa 

और यह सही कुंजी को प्रिंट करता है, इसलिए मुझे पता है कि इसकी सही तरीके से कॉपी की जा रही है

मैंने नोह की सलाह देने और भागने की कोशिश भी की है:

 RUN echo "Host bitbucket.org\n\tIdentityFile /root/.ssh/id_rsa\n\tStrictHostKeyChecking no" >> /etc/ssh/ssh_config 

यह दुख की बात भी काम नहीं करता है।

Solutions Collecting From Web of "डॉकरफाइल के साथ निजी जीआईटी रेपो क्लोन करें"

मेरी चाबी पासवर्ड संरक्षित थी जो समस्या पैदा कर रही थी, एक कार्यशील फाइल अब नीचे दी गई है (भविष्य के गोगलर्स की सहायता के लिए)

 FROM ubuntu MAINTAINER Luke Crooks "luke@pumalo.org" # Update aptitude with new repo RUN apt-get update # Install software RUN apt-get install -y git # Make ssh dir RUN mkdir /root/.ssh/ # Copy over private key, and set permissions ADD id_rsa /root/.ssh/id_rsa # Create known_hosts RUN touch /root/.ssh/known_hosts # Add bitbuckets key RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts # Clone the conf files into the docker container RUN git clone git@bitbucket.org:User/repo.git 

आपको उस डॉकर छवि के लिए नया एसएसएच कुंजी सेट बनाना चाहिए, क्योंकि आप शायद अपनी खुद की निजी कुंजी को एम्बेड नहीं करना चाहते हैं इसे काम करने के लिए, आपको अपने जीआईटी रिपॉजिटरी में तैनाती कुंजी में उस कुंजी को जोड़ना होगा। यहाँ पूरा नुस्खा है:

  1. ssh-keygen -q -t rsa -N '' -f repo-key एसएसबी कुंजी जनरेट करें जो आपको रेपो-की और रिपो-

  2. अपने रिपॉजिटरी परिनियोजन कुंजी में repo-key.pub जोड़ें
    GitHub पर, [अपने रिपॉज़िटरी] पर जाएं -> सेटिंग -> परिनियोजन कुंजी

  3. अपने Dockerfile में इस तरह कुछ जोड़ें:

     जोड़ें रेपो-कुंजी /
     चलाएं \
       chmod 600 / रिपो-कुंजी && \  
       गूंज "पहचानफ़ाइल / रेपो-कुंजी" >> / etc / ssh / ssh_config && \  
       echo -e "StrictHostKeyChecking no" >> / etc / ssh / ssh_config और& \  
       // आपका जीआईटी क्लोन यहां कमांड करता है ...
    

ध्यान दें कि उपरोक्त स्विच स्टिकहास्टकी चेकिंग को बंद करता है, इसलिए आपको .ssh / known_hosts की आवश्यकता नहीं है। हालांकि मुझे शायद ऊपर के उत्तरों में से एक में ssh-keyscan के साथ अधिक समाधान चाहिए

एसएसएच विन्यास के साथ चारों ओर बेला की कोई जरूरत नहीं है। कॉन्फ़िगरेशन फ़ाइल (एक डॉकरफाइल नहीं) का प्रयोग करें जिसमें परिवेश चर शामिल हैं, और एक शेल स्क्रिप्ट को रनटाइम पर अपना डॉकर फ़ाइल अपडेट करें। आप अपने डॉकरफाइलों से टोकन रखते हैं और आप https पर क्लोन कर सकते हैं (एसएसटी कुंजी उत्पन्न करने या पास करने की आवश्यकता नहीं है)

सेटिंग> व्यक्तिगत एक्सेस टोकन पर जाएं

  • repo स्कोप सक्षम के साथ एक निजी एक्सेस टोकन उत्पन्न करें।
  • इस तरह क्लोन करें: git clone https://MY_TOKEN@github.com/user-or-org/repo

कुछ टिप्पणीकारों ने ध्यान दिया है कि यदि आप एक साझा डॉकरफाइल का उपयोग करते हैं, तो यह आपके प्रोजेक्ट के अन्य लोगों के लिए आपकी एक्सेस कुंजी को बेनकाब कर सकता है। यद्यपि यह आपकी विशिष्ट उपयोग के मामले की चिंता हो सकती है या नहीं, लेकिन यहां कुछ तरीके हैं जिनसे आप इसका सामना कर सकते हैं:

  • तर्कों को स्वीकार करने के लिए एक शेल स्क्रिप्ट का उपयोग करें, जो कि आपकी कुंजी को एक चर के रूप में शामिल कर सकता है sed या समान के साथ अपने डॉकरफाइल में एक वेरिएबल को बदलें, यानी sh rundocker.sh MYTOKEN=foo साथ स्क्रिप्ट sh rundocker.sh MYTOKEN=foo जो कि https://{{MY_TOKEN}}@github.com/user-or-org/repo पर प्रतिस्थापित करेगा। ध्यान दें कि आप एक विन्यास फाइल का उपयोग कर सकते हैं (.आईएमएल में या जो प्रारूप आप चाहते हैं) ऐसा करने के लिए, लेकिन पर्यावरण चर के साथ
  • उस प्रोजेक्ट के लिए केवल एक गिथूब उपयोगकर्ता (और एक एक्सेस टोकन जेनरेट करें) बनाएं

बिटबकेट रिपॉज़िटरी के लिए, रेपो और परियोजना के लिए पढ़ने की एक्सेस के साथ ऐप पासवर्ड (एक्सेस मैनेजमेंट -> ऐप पासवर्ड) तैयार करें। उसके बाद आपको उपयोग की जाने वाली कमांड है:

git clone https://username:generated_password@bitbucket.org/reponame/projectname.git