2015-07-01 10 views
7

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

मेरे वर्तमान Dockerrun.aws.json इस तरह दिखता है:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Image": { 
     "Name": "b2boost/rabbitelasticdockstash", 
     "Update": "true" 
    }, 
    "Ports": [ 
     { 
      "ContainerPort": "80" 
     } 
    ], 
    "environment": [ 
     { 
      "name": "RABBITMQ_HOST", 
      "value": "RABBITMQ_HOST" 
     }, 
     { 
      "name": "RABBITMQ_PASSWORD", 
      "value": "RABBITMQ_PASSWORD" 
     }, 
     { 
      "name": "RABBITMQ_USER", 
      "value": "RABBITMQ_USER" 
     }, 
     { 
      "name": "RABBITMQ_VHOST", 
      "value": "RABBITMQ_VHOST" 
     }, 
     { 
      "name": "ELASTICSEARCH_HOST", 
      "value": "ELASTICSEARCH_HOST" 
     }, 
     { 
      "name": "ELASTICSEARCH_PASSWORD", 
      "value": "ELASTICSEARCH_PASSWORD" 
     }, 
     { 
      "name": "ELASTICSEARCH_PORT", 
      "value": "ELASTICSEARCH_PORT" 
     }, 
     { 
      "name": "ELASTICSEARCH_PROTOCOL", 
      "value": "ELASTICSEARCH_PROTOCOL" 
     }, 
     { 
      "name": "ELASTICSEARCH_USER", 
      "value": "ELASTICSEARCH_USER" 
     } 
    ], 
    "Volumes": [ 
    ], 
    "Logging": "/var/log/eb-activity.log" 
} 

हालांकि यह काम नहीं करता। जब मेरे बीनस्टॉक उदाहरण तो वातावरण चर की सामग्री को प्राप्त करने के लिए SSHing, मैं देख सकता है कि वे प्रारंभ नहीं किया गया:

[[email protected] ~]$ sudo docker exec goofy_curie env 

PATH=/opt/logstash/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin 
HOSTNAME=HOSTNAME 
LANG=C.UTF-8 
JAVA_VERSION=7u79 
JAVA_DEBIAN_VERSION=7u79-2.5.5-1~deb8u1 
LOGSTASH_MAJOR=1.5 
LOGSTASH_VERSION=1:1.5.1-1 
HOME=/root 

मैं अपने कंटेनर में वातावरण चर सेट कर सकते हैं? Dockerrun.aws.json मेरे लिए काम नहीं कर रहा है।

+1

यदि आप इस विकल्प का प्रयास किया था इसे अपलोड: http://stackoverflow.com/questions/28298101/elastic-beanstalk-environment-variables -फॉर-डॉकर-होस्ट? –

+1

यदि आप वीसीएस पर जानकारी रखना नहीं चाहते हैं, तो आप वेब कंसोल का उपयोग कर सकते हैं। यह मेरे डॉकराइज्ड वातावरण के लिए अच्छा काम करता है। http://stackoverflow.com/a/17878600/1102395 – Samar

उत्तर

9

एकल कंटेनर के लिए Dockerrun.aws.json में "पर्यावरण" फ़ील्ड की अनुमति नहीं है।

  1. बनाएँ फ़ोल्डर .ebextensions
  2. में एक .config फ़ाइल बनाएँ:

    आप फिर भी निम्न प्रक्रिया (अधिक जानकारी के लिए documentation को देखो) के साथ एक .config फ़ाइल में वातावरण चर निर्दिष्ट कर सकते हैं फ़ोल्डर

  3. कॉन्फ़िग फ़ाइल भरें:
 
option_settings: 
    - option_name: RABBITMQ_HOST 
    value: RABBITMQ_HOST 
    - option_name: RABBITMQ_PASSWORD 
    value: RABBITMQ_PASSWORD 
    - option_name: RABBITMQ_USER 
    value: RABBITMQ_USER 
    - option_name: RABBITMQ_VHOST 
    value: RABBITMQ_VHOST 
    - option_name: ELASTICSEARCH_HOST 
    value: ELASTICSEARCH_HOST 
    - option_name: ELASTICSEARCH_PASSWORD 
    value: ELASTICSEARCH_PASSWORD 
    - option_name: ELASTICSEARCH_PORT 
    value: ELASTICSEARCH_PORT 
    - option_name: ELASTICSEARCH_PROTOCOL 
    value: ELASTICSEARCH_PROTOCOL 
    - option_name: ELASTICSEARCH_USER 
    value: ELASTICSEARCH_USER 
  1. ज़िप .ebextensions Dockerrun.aws.json के साथ फाइल और बीनस्टॉक को
+0

क्या होगा यदि आप बंडल नहीं कर रहे हैं और इसके बजाय डॉकर हब पर एक छवि निर्दिष्ट कर रहे हैं? '.ebextensions 'कहाँ जाना होगा? – Luke

+0

@Luke आपको अभी भी Dockerun.aws.json फ़ाइल में डॉकर हब छवि निर्दिष्ट करना है? तो अपने Dockerrun.aws.json और .ebextensions के साथ एक गिट रिपॉजिटरी बनाएं और फिर कॉन्फ़िगरेशन को आसानी से तैनात करने के लिए ईबी सीएलआई का उपयोग करें। –

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