Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 在AWS ECS中运行docker并传递env文件_Amazon Web Services_Docker_Amazon Ecs_Amazon Ecr - Fatal编程技术网

Amazon web services 在AWS ECS中运行docker并传递env文件

Amazon web services 在AWS ECS中运行docker并传递env文件,amazon-web-services,docker,amazon-ecs,amazon-ecr,Amazon Web Services,Docker,Amazon Ecs,Amazon Ecr,我需要在AWS ECS中运行docker容器。我无法访问图像的源代码。这是一张私人图片,来自我上传到AWS ECR的私人回购协议。我创建了一个AWS ECS任务定义,用于在集群内的服务内运行容器。图像显示为正在启动和运行,但我无法通过浏览器点击它。我知道所有的网络设置都是正确的,因为我可以点击一个简单的helloworld应用程序,我也部署了该应用程序进行测试 我还需要先运行一个命令:docker run--env file:rake db:reset&&rake db:seed 根据此dock

我需要在AWS ECS中运行docker容器。我无法访问图像的源代码。这是一张私人图片,来自我上传到AWS ECR的私人回购协议。我创建了一个AWS ECS任务定义,用于在集群内的服务内运行容器。图像显示为正在启动和运行,但我无法通过浏览器点击它。我知道所有的网络设置都是正确的,因为我可以点击一个简单的
helloworld
应用程序,我也部署了该应用程序进行测试

我还需要先运行一个命令:
docker run--env file:rake db:reset&&rake db:seed

根据此docker映像的说明,它的run命令是:
docker run-d--name--env file-p8080:80:

我可以在笔记本电脑上本地运行此映像,而不会出现任何问题,将其部署到AWS就是一个问题。
我的问题是如何向图像提供
环境变量\u文件
?我在哪里上传文件,如何传递?如何在映像运行之前运行初始化DB的命令?

Amazon ECS不支持环境变量文件。您可以在任务定义内设置环境变量。例如:

"environment" : [
    { "name" : "string", "value" : "string" },
    { "name" : "string", "value" : "string" }
]
请阅读更多详情

更新:

AWS现在提供了一种方法-


自2020年11月起,ECS确实支持env文件(),但它们必须托管在S3上:


粘贴要点以供参考。根据集装箱定义:

“环境文件”:[
{
“值”:“arn:aws:s3:::s3\u bucket\u name/envfile\u object\u name.env”,
“类型”:“s3”
}
]
任务执行角色还需要以下权限:

{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“行动”:[
“s3:GetObject”
],
“资源”:[
“arn:aws:s3:::s3_bucket_name/envfile_object_name.env”
]
},
{
“效果”:“允许”,
“行动”:[
“s3:GetBucketLocation”
],
“资源”:[
“arn:aws:s3:::s3_bucket_name”
]
}
]
}