AWS Fargate 在启动时修改 /etc/hosts

AWS Fargate modify /etc/hosts on startup

我正在调用外部 API,唯一的调用方式是当我有主机文件条目时。所以现在我将 ECS Exec 添加到那里。我想自动化它,所以当我自动缩放时,我不必 ECS Exec 在每个任务上添加主机文件条目。

下面是我的任务定义的一部分,其中包含入口点/命令。他们都是空的。我相信我可以使用其中之一来做到这一点,但不是 100% 确定。

  "entryPoint": null,
  "portMappings": [
    {
      "hostPort": 8000,
      "protocol": "tcp",
      "containerPort": 8000
    }
  ],
  "command": null,

为了有类似需求的其他人而发布此信息。有 3 种方法可以完成这项工作。

  1. 就像评论者指出的 R53 私有托管区域(花钱 + 影响整个 VPC,而不仅仅是你的容器)

  2. 创建一个 Startup.sh,它可以具有添加到主机的逻辑,并将其添加为可部署容器的一部分,并使用 DockerFile

    调用它

    添加 RunStartUp.sh RunStartUp.sh 命令[./RunStartUp.sh"]

  3. 在任务定义中使用entryPoint/Command直接添加主机条目json

    “入口点”:[ “嘘”, “-C” ], “命令” : [ "/bin/sh -c "echo '122.123.423.12 google.com >> \etc\hosts "" ]