【问题标题】:Running docker in AWS ECS and passing env file在 AWS ECS 中运行 docker 并传递 env 文件
【发布时间】:2021-04-23 22:56:34
【问题描述】:

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

还有一个命令我之前需要运行:docker run --env-file <environment_variables_file> <image>:<tag> rake db:reset && rake db:seed。

根据这个 docker 镜像的说明,它的运行命令是:docker run -d --name <my_image_name> --env-file <environment_variables_file> -p 8080:80 <image>:<tag>。

我可以毫无问题地在笔记本电脑上本地运行此映像,将其部署到 AWS 就是这个问题。 我的问题是如何为图像提供environment_variables_file?我在哪里上传文件以及如何传递它?如何在镜像运行前运行命令来初始化数据库?

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs amazon-ecr


    【解决方案1】:

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

    https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html


    粘贴要点以供参考。在容器定义下:

    "environmentFiles": [
      {
        "value": "arn:aws:s3:::s3_bucket_name/envfile_object_name.env",
        "type": "s3"
      }
    ]
    

    任务执行角色还需要以下权限:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetObject"
          ],
          "Resource": [
            "arn:aws:s3:::s3_bucket_name/envfile_object_name.env"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:GetBucketLocation"
          ],
          "Resource": [
            "arn:aws:s3:::s3_bucket_name"
          ]
        }
      ]
    }
    

    【讨论】:

      【解决方案2】:

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

      "environment" : [
          { "name" : "string", "value" : "string" },
          { "name" : "string", "value" : "string" }
      ]
      

      请阅读following instructions了解更多详情。

      更新:

      AWS 现在提供了一种方法 -

      https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html

      【讨论】:

        猜你喜欢
        • 2022-01-19
        • 2017-04-20
        • 2021-08-10
        • 1970-01-01
        • 2015-11-14
        • 2020-11-10
        • 2020-06-09
        • 2019-04-03
        • 2021-10-16
        相关资源
        最近更新 更多