5

Fuse(s3fs[またはs3fsrruby gem?])を使用してAmazonS3バケットをマウントできることは知っています。

私のケースはHerokuに固有のものです。

Herokuのファイルシステムはスケーラビリティなどのために読み取り専用ですが、HerokuのファイルシステムにAmazon s3をマウントする方法はありますか?

私の場合、HerokuでRedmineを使用しており、Redmineの組み込みのgitリポジトリ管理を使用してコードレビューを問題にリンクしたいと考えています。Redmineは、リポジトリをローカルディレクトリに複製する必要があります。これは可能ですが、Herokuでは永続的ではありません。

RedmineにマウントされたS3バケットにgitリポジトリを維持してもらいたいです。これは可能ですか?可能だとしたら、それはどれくらい遅いでしょうか?これを達成するための他の選択肢はありますか?

4

2 に答える 2

2

私の質問に対する完璧な答えは見つかりませんでしたが、ここに問題のある回避策があります。

プロジェクトのルートにProcfileというファイルを作成することで、デフォルトのHerokuブートスクリプト(およびその他多数)をオーバーライドできます。

これがProcfileです:

# run custom boot scirpt
web: sh /app/config/web-boot.sh

このスクリプトがRedmineを起動することをHerokuに通知します。

プライベートリポジトリで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にプッシュするときに、RedmineBitbucketHookプラグインを使用して変更をリポジトリにプルできます。

このように秘密鍵を期待するのは理想的ではありませんが、私の特定のケースでは、この鍵はこのアプリに固有であり、コードリポジトリへの読み取り専用アクセスを取得するためにのみ使用されます。

于 2013-02-27T02:16:18.333 に答える
1

Heroku が起動時に .profile.d/ でスクリプトを実行するようになったことに注意してください。

https://devcenter.heroku.com/articles/profiled

また、'git push' post-commit フック (.git/hooks/post-commit 内) を追加することもできます。これにより、すべてのローカル コミット後にすべての変更が BitBucket にプッシュされます。

https://www.kernel.org/pub/software/scm/git/docs/githooks.html

于 2013-06-22T19:11:38.880 に答える