ECS 上的 Rails 迁移

Him*_*ack 6 ruby-on-rails amazon-ecs docker

我想弄清楚如何rake db:migrate在我的 ECS 服务上运行,但在部署后只能在一台机器上运行。

任何人都有这方面的经验?

谢谢

Eth*_*hit 6

您可以通过 Amazon ECS 一次性任务来完成。

  1. 使用 rake db migrate 作为 docker 文件中的“CMD”构建一个 docker 镜像。
  2. 创建任务定义。您可以在创建任务定义和所需任务编号为“1”时为每个主机选择一个任务。
  3. 在集群内运行一次性 ECS 任务。确保在服务之外进行。一旦完成任务,容器将自动停止。

您可以在部署之前编写一个脚本来执行此操作。之后,您可以像往常一样定义其他任务。

您还可以在此处参考 Amazon ECS 中的容器生命周期:http : //docs.aws.amazon.com/AmazonECS/latest/developerguide/task_life_cycle.html。但是,这是 docker 的默认行为。

请让我知道这对你有没有用。

  • 请注意,您可以重用主 Rails Docker 映像并覆盖要在任务定义中运行的命令。 (2认同)