我在heroku上设置了这个cron作业,以删除特定文件夹中的一些文件,然后使用新数据再次创建它们。我的代码在Github上并连接到heroku。在 heroku 上运行此 cron 后,如何实现更新我的 github 分支?
你真的不想这样做。如果您有正在更改的文件,它们应存储在 S3 或数据库或其他外部存储中。
Heroku 测功机具有短暂的文件系统,heroku 至少每 24 小时重新启动一次您的测功机。对本地文件系统所做的任何更改都将在重新启动时丢失。
这意味着,如果您更改了一个文件,并且heroku在将该文件推送到github之前重新启动,您将丢失更改。
这也意味着,每当推送到 github 存储库时,都需要重新部署。因此,如果您经常推动,您将不断重新部署。
从理论上讲,这是一种方式。
- 安装 heroku-apt-buildpack。
- 配置它以安装 git。
- 生成 SSH 密钥对。将私钥放在 heroku 应用程序的配置变量中。在github上安装公钥,以便您的dyno可以推送到github。
- 将您的 cron 作业配置为从 git 拉取,进行本地文件系统更改,并在进行任何本地文件系统更改后,使用 config var 中的私有 ssh 密钥推送到 git。
- 如果你想要"最后推赢"语义强制推。否则,您将需要处理推送失败的情况"拉取,可能解决冲突,推送">
- 将 heroku 配置为在每次推送到主分支时从 github 自动部署。
但真的 - 不要这样做。将您的文件放在一些外部存储服务上。