我想在託管ECS容器的EC2實例中設置一個環境變量。運行時,EC2實例上的docker客戶端應該可以讀取環境變量。我知道這是可以添加用戶數據,像這樣:將環境變量添加到ECS主機
#!/bin/sh
echo export env_var=1 >> /etc/environment
但出於某種原因,這ENV_VAR沒有被泊塢窗客戶實例ECS任務時撈起。
任何想法我可能會這樣做嗎?提前致謝。
我想在託管ECS容器的EC2實例中設置一個環境變量。運行時,EC2實例上的docker客戶端應該可以讀取環境變量。我知道這是可以添加用戶數據,像這樣:將環境變量添加到ECS主機
#!/bin/sh
echo export env_var=1 >> /etc/environment
但出於某種原因,這ENV_VAR沒有被泊塢窗客戶實例ECS任務時撈起。
任何想法我可能會這樣做嗎?提前致謝。
你只需添加環境變量?然後嘗試在Dockerfile
以下
添加變量ARG DEV
ENV DEV = $ {DEV}
添加變量時,構建泊塢窗圖像
泊塢窗構建。 -t項目名稱--build-ARG DEV =假
您可以將開始使用多克的--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"
}
],
}
]
}
感謝@John的建議,但我試圖將一個標誌傳遞給運行ECS容器(我認爲是docker)的容器守護進程。不是運行的容器 – cyc115
感謝提示。我希望ECS docker客戶端在從ECR拉取圖像時選取一個主機環境變量,如[示例](https://docs.docker.com/engine/security/trust/trust_automation)。或者,當ECS docker客戶端運行「docker pull」時,另一種解決方案是傳遞'--disable-content-trust = false'標誌。 – cyc115