24

Web サービスを作成していて、ソースを github に保存し、アプリを heroku で実行したいと考えています。これまでのところ、ネット上のどこにも私の正確なシナリオが書かれているのを見たことがないので、ここで質問します。

次のディレクトリ構造が必要です。

/project
  .git
  README <-- project readme file
  TODO.otl <-- project outline
  ... <-- other project-related stuff
  /my_rails_app
     app
     config
     ...
     README <-- rails' readme file 

上記の project はhttp://github.com/myuser/projectに対応し、 my_rails_app は heroku にプッシュするコードです。Railsアプリ用に別のブランチが必要ですか、それとも欠けている簡単な方法はありますか?

私のプロジェクト関連のレール以外のファイルは my_rails_app に置くことができると思いますが、レールの README は既にそこにあり、それを上書きするのは矛盾しているようです。ただし、そのままにしておくと、Rails アプリの github ページに Rails の readme が含まれてしまい、意味がありません。

また...上記のように設定して実行してみました

git push heroku

メインプロジェクトフォルダーから。もちろん、heroku は私がサブフォルダーをデプロイしたいことを知りません:

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.
4

4 に答える 4

18

これは、あなたにとってうまくいくかもしれないし、うまくいかないかもしれない簡単な解決策です。

  • GitHub で 2 つのプロジェクトを作成します。1 つのプロジェクトは、Rails アプリ (つまり、Rails アプリ ディレクトリ内のすべて) のみにする必要があります。もう 1 つのプロジェクトは、Rails アプリ ディレクトリの外部にあるすべてのものである必要があります。

  • 「コンテナー」プロジェクト内に Rails アプリ プロジェクトを git-submodule として追加します。

  • これで、Heroku を別の Rails アプリ リポジトリにリモートとして追加し、heroku にプッシュできるようになりました。Heroku は期待されるディレクトリとファイルを備えた単なる Rails アプリであるため、プッシュを受け入れます。

于 2010-03-16T13:44:39.727 に答える
6

Heroku の状況の解決策 (README ファイルではありません):

新しいHeroku Cedarを使用している場合(最初に質問したときは利用できなかったと思います)、プロセス (レール サーバー プロセスなど) はForemanを使用して起動します。したがって、Procfileルートの github ディレクトリに次のように配置できます。

web:     my_rails_app/script/runserver.sh

そしてmy_rails_app/script/runserver.sh、簡単なことかもしれません

#!/bin/sh

cd my_rails_app
bundle exec rails server -p $PORT

ローカルで、.env(先頭の . に注意してください)という名前のファイルも作成する必要があります。

PORT=3000

このファイルは職長によって読み取られ、環境変数を設定するために使用されます。これにより、マシンで実行するときにポートが設定さforeman startれます (Procfile があるルート github ディレクトリから)。Heroku サーバーは、dyno 上の .env ファイルを処理します。大きな利点は、そのように dyno で複数のプロセスを設定できることです!

于 2011-09-16T13:40:41.593 に答える
4

RailsのデフォルトREADMEファイルを上書きするだけです。それを維持する理由はありません。他のプロジェクト管理関連のものをdocディレクトリに入れます。確かに、自分のやり方で設定したい正当な理由がありますが、慣習に反することで自分自身に頭痛の種を作っているだけであり、おそらくメリットはありません.

于 2011-04-12T18:46:50.170 に答える
0

/my_rails_appその下のすべてを Heroku git リポジトリに追加します。次に、GitHub をリモートとして追加し、その下/projectのすべてを GitHub リポジトリに追加します。次に、Rails アプリケーションを Heroku にプッシュし (から/my_rails_app)、プロジェクト全体を GitHub にプッシュします (から/project)。

于 2010-03-16T13:36:27.127 に答える