将环境变量添加到ECS主机

时间:2017-08-31 20:56:39

标签: amazon-web-services docker amazon-ecs notary

我正在尝试在托管ECS容器的EC2实例中设置环境变量。在运行时,EC2实例上的docker客户端应该可以读取环境变量。我知道可以像这样添加userData:

#!/bin/sh
echo export env_var=1 >> /etc/environment

但由于某些原因,在实例化ECS任务时,这个env_var没有被docker客户端接收。

知道我怎么会这样做吗?提前致谢。

2 个答案:

答案 0 :(得分:0)

您只是添加环境变量吗?然后尝试以下

  1. 在Dockerfile中添加变量

    ARG DEV

    ENV DEV = $ {DEV}

  2. 在构建docker image

    时添加变量

    docker build。 -t projectname --build-arg DEV = False

答案 1 :(得分:0)

您可以在任务定义中定义环境变量,这些变量将使用Docker的--env选项传递到您的容器中。 Advanced Container Definition Parameters(向下滚动到"环境")

"environment" : [
    { "name" : "string", "value" : "string" },
    { "name" : "string", "value" : "string" }
]

以下是一个快速示例,了解它在完整任务定义中的显示方式:

{
    "family": "example-task",
    "containerDefinitions": [
        {
            "name": "sample-app",
            "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/aws-nodejs-sample:v1",
            "memory": 200,
            "cpu": 10,
            "essential": true,
            "environment": [
                {
                    "name": "ENVIRONMENT",
                    "value": "production"
                },
                {
                    "name": "API_HOST",
                    "value": "https://example.com"
                }
            ],
        }
    ]
}