17

मेरे पास ईसीएस पर एक कस्टम डॉकर छवि अपलोड की गई है। मैंने इस समस्या को हल करने और प्राप्त करने के लिए अनुमतियां खोलीं (जब मैं इसे काम पर ला सकता हूं तो मैं इसे फिर से लॉक कर दूंगा)। मैं लोचदार बीनस्टॉक में डॉकर छवि को तैनात करने का प्रयास कर रहा हूं। मेरे पास एक डॉकर सक्षम लोचदार बीनस्टॉक पर्यावरण स्थापित है। एडब्ल्यूएस दस्तावेज़ों के मुताबिक, अगर मैं अपनी छवि को एडब्लूएस के भीतर से खींच रहा हूं, तो मुझे क्रेडेंशियल में पास करने की आवश्यकता नहीं है। इसलिए मैं अपनी Dockerrun.aws.json फ़ाइल अपलोड करता हूं और इसे इंस्टॉल करने का प्रयास करता हूं। यह त्रुटि के साथ विफल रहता है:एडब्ल्यूएस डॉकर परिनियोजन

Command failed on instance. Return code: 1 Output: Failed to authenticate with ECR for registry '434875166128' in 'us-east-1'. Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

/var/log/eb-activity.log जानकारी में कुछ भी उपयोगी नहीं है।

{ 
    "AWSEBDockerrunVersion": "1", 
    "Image": { 
    "Name": "{id000xxxx}.dkr.ecr.us-east-1.amazonaws.com/my-repo:1.0.0", 
    "Update": "true" 
    }, 
    "Ports": [ 
    { 
     "ContainerPort": "4000" 
    } 
    ], 
    "Logging": "/var/log/app-name" 
} 

मैं भी एस 3 में dockercfg.json फ़ाइल के साथ प्रमाणीकरण जोड़ने की कोशिश की है:

यहाँ मेरी Dockerrun.aws.json फ़ाइल है। यह मेरे लिए भी काम नहीं करता था।

Note that I am using a business account instead of a personal account, so there may be some unknown variances as well.

धन्यवाद!

अपडेट: मेरे उपयोगकर्ता के पास इस समय भी पूर्ण अनुमतियां हैं, इसलिए रास्ते में अनुमति के बिना अनुमति नहीं होनी चाहिए।

+0

ईसीआर रिपोजिटरी सेटिंग्स/अनुमतियों की जांच यहां करें: https://media.amazonwebservices.com/blog/2015/ecr_permissions_1.png –

+0

यह भी सुनिश्चित करें कि आईएएम भूमिका बीनस्टॉक से जुड़ी है (पुल चलाने वाला उदाहरण) आईएएम अनुमतियों के माध्यम से ईसीआर और ईसीएस दोनों तक पहुंच है: http://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_IAM_policies.html –

+0

धन्यवाद @MarcYoung। मैंने उन सेट अप किए हैं ठीक से पहले से ही –

उत्तर

38

मुझे एक ही समस्या थी।

समाधान: AWS -> IAM -> Roles - > में अपनी बीनस्टॉक का उपयोग करने वाली भूमिका चुनें। AmazonEC2ContainerRegistryReadOnly

ईसीआर में इस भूमिका के लिए किसी भी अनुमतियाँ देने के लिए कोई जरूरत नहीं है:

मेरे मामले में यह aws-elasticbeanstalk-ec2-role

स्थापित किया गया था इस भूमिका के लिए अनुमतियां के तहत, नीति देते हैं।

+0

आप कमाल कर रहे हैं! यह वही है जो मैं याद कर रहा था। –

+2

'aws-elasticbeanstalk-ec2-role' डिफ़ॉल्ट उदाहरण प्रोफ़ाइल है जब आप AWS लोचदार बीनस्टॉक प्रबंधन कंसोल में वातावरण लॉन्च करते हैं। - http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-instanceprofile.html –

+0

दस्तावेज के लिए LINK जहां अनुमति 'AmazonEC2ContainerRegistryReadOnly' का उपयोग किया जाता है: http://docs.aws.amazon.com/ elasticbeanstalk/नवीनतम/महानिदेशक/create_deploy_docker.container.console.html – zatziky

0

आप आवश्यक सेवा भूमिकाओं intialize कर सकते हैं लोचदार बीनस्टॉक के लिए (एडब्ल्यूएस-elasticbeanstalk-EC2-भूमिका, AWS-elasticbeanstalk-सेवा-भूमिका, AWSServiceRoleForECS) नई लचीला बीनस्टॉक के कंसोल का उपयोग करके। आप प्रत्येक AWS खाते पर यह केवल एक बार करना है:

  • लचीला बीनस्टॉक कंसोल पर जाएं।
  • "नया डिज़ाइन" स्वीकार करें: कंसोल के शीर्ष में, यदि कोई संदेश "हम एक नए डिज़ाइन का परीक्षण कर रहे हैं" को देखते हैं, तो कंसोल के नए संस्करण का उपयोग करने के लिए स्वीकार करने के लिए ऑप्टिन करें। चेतावनी, ऐसा लगता है कि आप पुराने कंसोल पर रोलबैक नहीं कर सकते हैं।
  • नया एप्लिकेशन विज़ार्ड बनाएं प्रारंभ करें, और तकनीक में डिफ़ॉल्ट नमूना अनुप्रयोग का उपयोग करें।
  • फिर से शुरू होने तक विज़ार्ड के सभी चरणों को पूरा करें, और सुरक्षा पैनेल देखें: आप दो भूमिकाएं "aws-elasticbeanstalk-ec2-role" और "aws-elasticbeanstalk-service-role" देखेंगे। और नमूना ऐप बनाने के लिए विज़ार्ड को समाप्त करें।
  • थोड़ी देर के बाद, आवेदन
  • चलना चाहिए आपात स्थिति के मामले में, IAM कंसोल पर जाएं और भूमिकाओं एडब्ल्यूएस-elasticbeanstalk-EC2-भूमिका और एडब्ल्यूएस-elasticbeanstalk-सेवा-भूमिका हटा सकते हैं और विज़ार्ड फिर से चलाएँ।

मैंने तय किया कि "आदेश उदाहरण पर विफल रहा।रिटर्न कोड: 1 आउटपुट: रजिस्ट्री के लिए ईसीआर के साथ प्रमाणित करने में विफल "और एक अन्य अजीब त्रुटि (" आपके द्वारा प्रदान की गई एडब्ल्यूएस एक्सेस कुंजी आईडी हमारे रिकॉर्ड में मौजूद नहीं है। (ElasticBeanstalk :: ManifestDownloadError) ") ​​नया कंसोल का उपयोग करके। I अभी भी पुरानी एक के साथ यह त्रुटि थी।

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