3

我们正在使用虚拟主机 dotCloud 来运行我们的一些应用程序。dotCloud 直接从 git 存储库部署应用程序,并从该存储库读取名为 dotcloud.yml 的配置文件以配置和运行堆栈。

我们有两个分支(一个生产,一个暂存),它们是同一个仓库的一部分,它们推送到单独的 dotCloud 实例。运行每个实例的 dotcloud.yml 文件存在细微差别。

管理此 dotcloud.yml 文件的最佳方法是什么?目前我们只是确保我们确保每个分支上的 dotcloud.yml 都是正确的,但是当我们合并从 staging 到 master 的更改时,它会不断被覆盖。

4

2 回答 2

1

你可以:

  • 版本一dotcloud.yml.template
  • 版本 adotcloud.yml.value.prod和 adotcloud.yml.value.staging以及每个环境的相关值。
  • 根据 dotCloud 实例,负责构建正确的dotcloud.yml 文件(不再版本化)的涂抹脚本。

您可以将该涂抹脚本声明为(也是版本化的)文件中的过滤器内容驱动程序.gitattribute

过滤器驱动程序

在任何 git checkout 上,都会调用 smudge 脚本,如果它识别出dotcloud.yml.template内容,则会构建正确的dotcloud.yml文件。

于 2012-05-03T07:38:20.000 回答
1

你可以:

  • 添加dotcloud.yml.gitignore,有两个单独的文件用于登台和生产(例如dotcloud.yml.stagingdotcloud.yml.production),两者都存在于您的 git 存储库中,设置一个符号链接dotcloud.yml → dotcloud.yml.production,并推送dotcloud push --rsync(该--rsync标志将覆盖推送机制检测,并且 rsync 机制将启动,而不是git机制);
  • 使用相同的dotcloud.yml文件,但依靠不同的机制(例如dotcloud varpostinstall脚本)在生产和暂存行为之间切换。
于 2012-05-03T07:51:15.143 回答