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