2015-07-01 26 views
7

Hiện đang sử dụng Cây đậu Đàn hồi để chạy vùng chứa Docker, tôi cần chuyển thông tin quan trọng làm biến môi trường cho vùng chứa của mình.Chuyển biến môi trường vào vùng chứa Docker

Dockerrun.aws.json hiện tại của tôi trông như thế này:

{ 
    "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" 
} 

này không hoạt động tuy nhiên. Khi SSHing để dụ cây đậu của tôi sau đó nhận được nội dung của các biến môi trường, tôi có thể thấy rằng họ đã không được khởi tạo:

[[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 

Làm thế nào tôi có thể thiết lập các biến môi trường trong các thùng chứa của tôi? Dockerrun.aws.json dường như không hoạt động đối với tôi.

+1

Bạn hãy thử tùy chọn này: http://stackoverflow.com/questions/28298101/elastic-beanstalk-environment-variables -cho-docker-host? –

+1

Nếu bạn không muốn giữ thông tin trên VCS, bạn có thể sử dụng bảng điều khiển web. Nó hoạt động tốt cho môi trường dockerized của tôi. http://stackoverflow.com/a/17878600/1102395 – Samar

Trả lời

9

Trường "môi trường" không được phép trong Dockerrun.aws.json cho các vùng chứa đơn lẻ.

Bạn tuy nhiên có thể chỉ định các biến môi trường trong một file config với các thủ tục sau đây (nhìn vào documentation để biết thêm thông tin):

  1. Tạo một thư mục .ebextensions
  2. Tạo một file .config trong thư mục
  3. Điền vào tập tin cấu hình:
 
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. Zip file .ebextensions cùng với Dockerrun.aws.json và tải nó lên cây đậu
+0

nếu bạn không đi kèm và thay vào đó là chỉ định hình ảnh trên hub docker? '.extext' sẽ đi đâu? – Luke

+0

@Luke Bạn vẫn phải chỉ định hình ảnh Docker Hub trong tệp Dockerrun.aws.json phải không? Vì vậy, tạo một kho lưu trữ git với Dockerrun.aws.json và .ebextensions của bạn và sau đó sử dụng EB CLI để dễ dàng triển khai cấu hình. –

Các vấn đề liên quan