Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 将主机IP设置为Dockerfile(AWS ECS Fargate)中的环境变量_Amazon Web Services_Docker_Amazon Ecs_Aws Fargate - Fatal编程技术网

Amazon web services 将主机IP设置为Dockerfile(AWS ECS Fargate)中的环境变量

Amazon web services 将主机IP设置为Dockerfile(AWS ECS Fargate)中的环境变量,amazon-web-services,docker,amazon-ecs,aws-fargate,Amazon Web Services,Docker,Amazon Ecs,Aws Fargate,我正在AWS ECS中运行第三方应用程序,启动类型为fargate。此应用程序要求将主机IP作为环境变量传递。但在fargate启动类型中,在任务启动并运行之前,我不会知道IP。因此,我计划修改DockerFile,将主机IP添加为环境变量。如何做到这一点?您想使用任务元数据来反省您的任务和容器特征(包括其私有IP)。您需要从容器中curl${ECS\u CONTAINER\u METADATA\u URI\u V4}/task,并解析响应以找到所需内容。有关返回的JSON的结构,请参阅。谢谢,

我正在AWS ECS中运行第三方应用程序,启动类型为fargate。此应用程序要求将主机IP作为环境变量传递。但在fargate启动类型中,在任务启动并运行之前,我不会知道IP。因此,我计划修改DockerFile,将主机IP添加为环境变量。如何做到这一点?

您想使用任务元数据来反省您的任务和容器特征(包括其私有IP)。您需要从容器中
curl${ECS\u CONTAINER\u METADATA\u URI\u V4}/task
,并解析响应以找到所需内容。有关返回的JSON的结构,请参阅。

谢谢,但是1。我需要在创建容器2的过程中设置变量。由于Fargate发射类型,一旦容器启动并运行,我就无法“进入”容器。那么我该如何对它进行卷曲呢?我的建议是在运行时在启动脚本中填充变量,而不是在配置时(也因为,正如您所说,您不知道也不可能预先知道IP)。我的意思不是手动填充变量(尽管您可以使用我们最近推出的新功能来填充)。我的意思是将curl作为启动脚本的一部分运行,将IP保存在一个变量中,然后从脚本启动应用程序。我想将主机的IP(运行容器的机器)设置为容器中的环境变量。任务元数据提供了容器本身的IP,而不是底层主机的IP。是的,我认为这很混乱,因为如果您使用Fargate,根本就没有主机(或者您无论如何都不能访问/处理)。绝对没有“主机的IP地址”。这就是Fargate的全部思想:部署容器而不需要拥有/管理/查看基础设施。您需要主机IP的原因是什么?为什么应用程序需要它?基本上,我试图设置env变量的容器是一个“load generator”。此容器将向目标发送请求以进行负载测试。存在另一个容器,它是“控制器”。控制器管理一个或多个LGs。因此,它应该能够通过$LG_主机:端口与任何LG联系。这是一个第三方工具,所以我没有太多的自由来修改逻辑。控制员:LG: