2

使用适用于 Azure 的 Git 部署,我应该如何最好地完成以下部署目标?

  • 在本地工作时轻松切换为使用伪造的内存数据或(最终)真实数据的非生产快照
  • 部署到 Azure 上的暂存环境,这样一开始我可以使用虚假的内存数据,最终转移到真实数据的非生产快照。
  • 使用真实数据部署到生产环境

我目前使用 Github 和暂存分支部署到暂存 Azure 网站。由于我部署到公共存储库,因此 git 会忽略 web.config 文件。(编辑:我刚刚了解到忽略 web.config 实际上会导致 azure 上的部署错误)

任何帮助/建议表示赞赏。

4

2 回答 2

1

它实际上应该比这更简单。请看这个页面。基本上,这个想法是您在 Azure 门户中设置一些 AppSettings 以覆盖提交给您的存储库的默认值。

于 2013-03-30T23:57:10.500 回答
0

嗯......这就是我现在所做的对我有用的事情。

  • 为了在本地快速切换伪造的内存数据,我使用了编译符号LOCAL和预处理器指令#if LOCAL

  • 部署到 Azure 时使用相同的编译符号,因此我可以处理假数据,直到我准备好切换到真实数据库。如果我真的想更轻松地切换它,我也可以使用应用程序设置。

挑战是在本地保留一个带有“秘密”(如连接字符串)的 web.config,而不是将其暴露给 Github。我将它添加到 .gitignore,但随后我的部署在 Azure 上开始失败,因为它找不到 web.config。只是通过 ftp 将其复制到 wwwroot 并没有帮助 - Azure 正在存储库中寻找 web.config。

因此,为了完成这项工作,我“稍微”改变了部署过程,首先将 Web.config 从 wwwroot 复制到存储库,然后再运行默认的 deploy.cmd。这很简单——这就是你要做的:

  1. .deployment使用以下内容在存储库的根目录中创建一个文件:

    [配置] 命令 = deploy.my.cmd

  2. deploy.my.cmd使用以下脚本创建:

    xcopy %DEPLOYMENT_TARGET%\Web.config %DEPLOYMENT_SOURCE%\\ /Y

    部署.cmd

现在,我在本地有带有秘密的 web.config。Git 忽略此文件。我通过 FTP 将正确的 web.config 上传到 Azure,每当我部署时都会使用它。

于 2013-03-30T07:47:39.497 回答