Heroku と Github の統合 (プロジェクトの構成方法)
-
20-09-2019 - |
質問
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
上記において、プロジェクトは以下に相当します。 http://github.com/myuser/project, my_rails_app は、heroku にプッシュする必要があるコードです。Rails アプリ用に別のブランチが必要ですか、それとももっと簡単な方法がありませんか?
私のプロジェクト関連の非 Rails ファイルは my_rails_app に存在できると思いますが、Rails README はすでにそこに存在しており、それを上書きするのは矛盾しているようです。ただし、このままにしておくと、Rails アプリの github ページに Rails の Readme が含まれることになり、意味がありません。
また ...上記のように設定して実行してみました
git push heroku
メインプロジェクトフォルダーから。もちろん、heroku は私がサブフォルダーをデプロイしたいことを知りません。
-----> Heroku receiving push
! Heroku push rejected, no Rails or Rack app detected.
解決
ここでは、あなたにとってうまくいくかもしれないし、うまくいかないかもしれない簡単な解決策を紹介します。
GitHub 上に 2 つのプロジェクトを作成します。1 つのプロジェクトは Rails アプリだけである必要があります (つまり、Rails アプリ ディレクトリ内のすべて)。もう 1 つのプロジェクトは、Rails アプリ ディレクトリの外にあるすべてのものである必要があります。
Rails アプリ プロジェクトを「container」プロジェクト内の git-submodule として追加します。
これで、Rails アプリ リポジトリに Heroku をリモートとして個別に追加し、heroku にプッシュできるようになりました。Heroku は、予想されるディレクトリとファイルを備えた単なる Rails アプリであるため、プッシュを受け入れます。
他のヒント
Herokuの状況(ないREADMEファイル)のためのソリューション:
あなたはHerokuのシーダーのrel="nofollow">新しいフォアマンに。このように、あなたは次のようになり、ルートgithubのディレクトリにProcfile
を配置することができます:
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
このファイルは、職長によって読み取られ、あなたは(Procfileがあるルートgithubのディレクトリから)あなたのマシン上でforeman start
を実行したときにポートが設定されているように、環境変数を設定するために使用されます。 Herokuのサーバーは、あなたのダイノに.envファイルの世話をします。大きな利点は、あなたがそのようダイナモ上で複数のプロセスを設定することができます!
ただ、RailsのデフォルトのREADME
ファイルを上書きします。それを周りに維持する理由はありません。 doc
ディレクトリ内の他のプロジェクト管理に関連するものを入れてください。あなたは確かにあなたがやった方法でそれを設定したいのための正当な理由がありますが、あなただけの慣例に反することで自分自身のために頭痛を作成している、そしてそれはおそらく利益の価値はありません。
私はHerokuののgitリポジトリに/my_rails_app
の下にすべてを追加します。その後、GitHubをリモートに追加し、GitHubのリポジトリに/project
の下にすべてを追加します。そして、あなたは(/my_rails_app
から)(/project
から)HerokuのにRailsアプリケーションをプッシュし、GitHubのに完全なプロジェクトをプッシュすることができます。