我正在尝试在托管ECS容器的EC2实例中设置环境变量。在运行时,EC2实例上的docker客户端应该可以读取环境变量。我知道可以像这样添加userData:
#!/bin/sh
echo export env_var=1 >> /etc/environment
但由于某些原因,在实例化ECS任务时,这个env_var没有被docker客户端接收。
知道我怎么会这样做吗?提前致谢。
答案 0 :(得分:0)
您只是添加环境变量吗?然后尝试以下
在Dockerfile中添加变量
ARG DEV
ENV DEV = $ {DEV}
在构建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"
}
],
}
]
}