2017-08-31 96 views
1

我想在託管ECS容器的EC2實例中設置一個環境變量。運行時,EC2實例上的docker客戶端應該可以讀取環境變量。我知道這是可以添加用戶數據,像這樣:將環境變量添加到ECS主機

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

但出於某種原因,這ENV_VAR沒有被泊塢窗客戶實例ECS任務時撈起。

任何想法我可能會這樣做嗎?提前致謝。

回答

0

你只需添加環境變量?然後嘗試在Dockerfile

以下

  1. 添加變量ARG DEV

    ENV DEV = $ {DEV}

  2. 添加變量時,構建泊塢窗圖像

    泊塢窗構建。 -t項目名稱--build-ARG DEV =假

+0

感謝提示。我希望ECS docker客戶端在從ECR拉取圖像時選取一個主機環境變量,如[示例](https://docs.docker.com/engine/security/trust/trust_automation)。或者,當ECS docker客戶端運行「docker pull」時,另一種解決方案是傳遞'--disable-content-trust = false'標誌。 – cyc115

0

您可以將開始使用多克的--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" 
       } 
      ], 
     } 
    ] 
} 
+0

感謝@John的建議,但我試圖將一個標誌傳遞給運行ECS容器(我認爲是docker)的容器守護進程。不是運行的容器 – cyc115