繁体   English   中英

Git推送从本地机器部署和复制环境变量

[英]Git push to deploy and copy environment variables from local machine

我已经设置了混帐推部署如图所示在这里 ,它的伟大工程,但它目前需要额外的步骤:当环境变量需要添加或删除,像这样

  1. git push production master-更新服务器上的源代码,运行部署后任务,重新启动应用程序服务器

  2. 将production.env复制到生产中-覆盖production.env,重新启动应用程序服务器

我想知道是否可以“将控制权”传递回发起推送的本地计算机,将环境文件从本地计算机复制,然后将“返回控制权”复制到生产服务器以运行部署后任务,最后重新启动服务器。 所有在git post内接收钩子吗?

或简而言之,就是推动部署解决方案的步骤,该解决方案只需一步即可在环境文件上进行复制。 有人知道是否有在本地执行的预推钩子吗?

还好奇PaaS提供程序如何允许您通过Web界面管理环境变量,这些环境变量是否存储在数据库中并在某个时候导出?

当前解决方案

  1. git push生产主更新源
  2. 执行deploy.sh

deploy.sh(此文件在本地主机上并在本地执行)

  • 将环境文件复制到服务器,如果已经存在,则将其覆盖
  • 在服务器上执行post_deploy.sh

post_deploy.sh(此文件在服务器上,并且可以从如上所述在本地执行的部署脚本远程执行)

  • 从最新来源构建应用
  • 重新启动应用

理想的解决方案

我希望能够运行git push production master并执行以下任务,这些任务由git post-receive钩子或适当的替代方法触发。

  • 通过ssh(scp)从本地将环境复制到服务器
  • 如上所示运行部署后任务

通过尝试解释自己的问题,您可以学到很多东西,结果发现有一个在运行推之前在客户端运行的预推钩子。 我在那里添加了预部署任务,它可以按预期工作。 因此,总之,最终推动部署设置的过程看起来像这样

git push production master

这将执行以下操作:

  • 在客户端上运行预推送钩子并执行预部署任务
  • 在服务器上运行后接收挂钩并执行后部署任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM