簡體   English   中英

將環境變量傳遞給Docker容器

[英]Passing environment variables to Docker containers

目前使用Elastic Beanstalk運行Docker容器,我需要將重要信息作為環境變量傳遞給我的容器。

我目前的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"
}

但這不起作用。 在SSH訪問我的beanstalk實例然后獲取環境變量的內容時,我可以看到它們沒有被初始化:

[ec2-user@myip ~]$ 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似乎不適合我。

對於單個容器,Dockerrun.aws.json中不允許使用“environment”字段。

但是,您可以使用以下過程在.config文件中指定環境變量(有關詳細信息,請參閱文檔 ):

  1. 創建一個.ebextensions文件夾
  2. 在該文件夾中創建.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一起壓縮並將其上傳到Beanstalk

另一種方式(圖形):

在beanstalk的配置中單擊修改 軟件卡。 在此頁面的底部,您可以填寫環境變量的名稱和值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM