2015-06-22 8 views
11

के भीतर स्वचालित डॉकर लॉगिन एक स्क्रिप्ट के भीतर docker login कमांड पर मैं अपने क्रेडेंशियल्स को कैसे निर्धारित कर सकता हूं?बैश स्क्रिप्ट

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

(echo "xxx"; echo "yyy"; echo "zzz") | docker login docker.somesite.org 


का उपयोग कर और एक मौजूदासे अधिक मुकाबला बिना प्राप्त करने के लिए यह संभव है:

Username: FATA[0000] inappropriate ioctl for device


आदेश मैं उपयोग कर रहा था पीछा कर रहा हैफ़ाइल और कैसे,
बहुत धन्यवाद। आप DOCKER_HOST निर्दिष्ट नहीं करते हैं

docker login --username=$DOCKER_USER --password=$DOCKER_PASS $DOCKER_HOST 

, आप मुख्य डोकर रेपो मिल जाएगा:

+0

आप उम्मीद/pexpect –

उत्तर

19

आप कमांड लाइन पर सभी तर्क पारित कर सकते हैं। यदि आप किसी भी तर्क को छोड़ देते हैं, तो आपको उस तर्क के लिए कहा जाएगा।

(पुराने कि 1.11, आप एक --email झंडा पास करनी होगी डोकर के संस्करण है, लेकिन इसकी सामग्री के लिए वास्तव में जाँच नहीं कर रहे हैं)

+0

आपको बहुत बहुत धन्यवाद का उपयोग करने के, कि काम किया होगा; डी –

+3

लघु अंकन और अधिक सुविधाजनक हो सकता है: 'डोकर लॉगिन -u $ DOCKER_USER -p $ DOCKER_PASS मी $ DOCKER_EMAIL $ DOCKER_HOST' – antonbormotov

+1

यह वरीयता का मामला है, लेकिन जब मैं एक स्क्रिप्ट लिख रहा हूं, तो मैं लंबे विकल्प पसंद करता हूं क्योंकि यह स्वयं-दस्तावेज है और इसका कोई फायदा नहीं होता है। (जैसा कि कमांड लाइन पर है, जहां यह मेरी उंगलियों को बचा रहा है और रैपिंग से परहेज कर रहा है।) –

2

जब आप अपने निजी रजिस्ट्री के लिए लॉग इन, डोकर ऑटो बनाने एक फ़ाइल $ HOME /। docker/config.json फ़ाइल में प्रमाण-पत्र जानकारी थी, इसलिए जब आप रजिस्ट्री को लॉगिन करना चाहते हैं तो आप फ़ाइल को सहेज सकते हैं और किसी होस्ट को कॉपी कर सकते हैं।

इस तरह फ़ाइल सामग्री:

{ 
    "auths": { 
        "example.com": { 
            "auth": "xxxxxxxxxxxxxxxxxxxxxxx" 
        } 
      } 
} 

एड-ऑन आप एक सर्वर पर बहु ​​डोकर रजिस्ट्री के लिए लॉग इन करने के लिए, बस इस info.like एक और प्रमाणन जोड़ने चाहते हैं: अब आप

{ 
    "auths": { 
        "example.com": { 
            "auth": "xxxxxxxxxxxxxxxxxxxxxxx" 
        }, 
        "example1.com":{ 
            "auth": "xxxxxxxxxxxxxxxxxxxxxxx" 
        } 
      } 
} 

example.com और example1.com से छवियों को पुश और खींच सकते हैं।

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