もっぺんプログラミング(´・ω・`)

もっぺん頑張って副業プログラマを目指してます。

もっぺんheroku(仕組み・ビルド〜アプリ起動まで)

herokuでアプリを動かす仕組みを調べたので簡単にまとめてみました。

具体的なコマンドなどは書いてませんが、基礎知識として持っておくことでドキュメントを調べたりする際のヒントになれば…

■Herokuの仕組み

こちらの解説がわかりやすかったです。

Heroku使い方メモ(Java) - Qiita

■全体の仕組み

• アプリケーションのソースコードは、Heroku上のGit で管理する
• Heroku上のGitリポジトリにPushすると、自動的にビルドされ必要なファイルをまとめたパッケージが作られる。(Slug)
• Slugは、Heroku上の仮想環境(Dyno)にデプロイされ実行される。

■HerokuのGitとの連携

• HerokuのGitリポジトリは heroku create コマンドでアプリ作成時に同時に出来る。
• ローカルGitリポジトリのルートでコマンドを実行すれば、heroku という名前のremote 設定が自動で追加される。

■ビルド〜アプリ起動

• Herokuのビルドは、buildpacksという仕組みが使われる。
• ライブラリのインストールは、各言語のツールに従った設定ファイルがあれば読み込んでくれる。(PHPならcomposer.json、Pythonならrequirements.txt)
• アプリの起動には、Procfileが使われる。

■Procfile とは

• アプリ起動時に実行するコマンドを指定するファイル
• Gitのルートディレクトリに置く。(拡張子はつけない)
• <プロセスタイプ>:<コマンド>の形式で記述する"web" は特別で、HTTPを受けるアプリ宣言に使われる。その他のプロセスタイプは、自由に定義することが可能

The Procfile | Heroku Dev Center

■Buildpacksとは

• Herokuは、標準で言語ごとにビルドの定義を用意している。(Buildpacks)Buildpackで何が行われるのかは、各ドキュメント参照
• 現在のアプリで使われる buildpacks は、heroku コマンドで確認できる。指定することも可能>   

heroku buildpacks:set heroku/pythonなど

Buildpacks | Heroku Dev Center

■Heroku CLIの操作

• heroku は、CLIをインストールして、コマンドで操作できる。
• アプリの制御、heroku 上の環境変数、heroku上でコマンド実行、ログ確認などなど、いろいろ出来る。

Heroku操作 CLI - Qiita

基礎知識を持っておくと、Qiitaにあるチュートリアルを見た時に、何をしているのか想像がつくようになるので理解が進みますよね。 頑張っていこう。