【发布时间】:2018-06-15 16:26:08
【问题描述】:
我正在尝试确定在我们的部署中将rake db:migrate 放在哪里。我目前在 Dockerfile 中。
我们现在的基本设置是。
开发者在 Rails 应用上工作 -> 推送到仓库 -> 构建/扫描/推送镜像到 Docker 注册表 -> 部署到 K8s 集群。
目前在此工作流程中,每次构建时都会执行rake db:migrate。
这样合理吗?
【问题讨论】:
-
如何在构建时成功运行
rake db:migrate?您是否在同一个容器中运行您的数据库? -
这是个好问题。当它在 docker compose 文件中时,它会将 db 列为依赖项,因此首先构建。 k8s 上的这种部署也需要 db 作为依赖项。目前部署不是这样设置的。但是我们已经有一个运行 postgres 的 pod。它还不是正式的依赖项。我的主要问题是,如果我继续从新构建的容器运行 rake db:migrate 会不会弄乱我的数据。
-
有道理。我已经添加了答案。
标签: ruby-on-rails docker kubernetes