我还没有找到我的问题的完美答案,但这是一个好的解决方法。
您可以通过在项目的根目录创建一个名为 Procfile 的文件来覆盖默认的 Heroku 启动脚本(以及更多)。
这是 Procfile :
# run custom boot scirpt
web: sh /app/config/web-boot.sh
它告诉 Heroku 这个脚本启动 Redmine。
我将 Bitbucket 与私有存储库一起使用,因此我创建了一个 SSH 密钥对并将它们放在“config/ssh/”中。然后,我将公钥添加到我的 Bitbucket 帐户的部署密钥中,并将 Bitbucket 的公钥添加到我的“config/ssh/know_hosts”文件中
这是“config/web-boot.sh”文件:
# move ssh keys
mkdir /app/.ssh
cp /app/config/ssh/* /app/.ssh/
# git clone code repos
mkdir /tmp/repos
# Do this for every repo you want to clone
git clone --bare ssh://git@bitbucket.org/[YOUR_ACCOUNT]/[YOUR_REPO].git /tmp/repos/[YOUR_REPO]
git --git-dir=/tmp/repos/[YOUR_REPO] remote add origin ssh://git@bitbucket.org/[YOUR_ACCOUNT]/[YOUR_REPO].git
git --git-dir=/tmp/repos/[YOUR_REPO] fetch origin
# run Unicorn http server
cd /app
bundle exec unicorn -p $PORT -c ./config/unicorn.rb
然后,您可以通过指定“/tmp/repos/[YOUR_REPO]”将 Git 存储库添加到您的 Redmine 项目
当您将更改推送到 Bitbucket 时,您可以使用Redmine Bitbucket Hook 插件将更改拉入您的存储库。
像这样希望有一个私钥并不理想,但在我的具体情况下,这个密钥是这个应用程序独有的,仅用于获得对我的代码存储库的只读访问权限。