前提
droplet
以下の3つを詰めたtarballのこと
- stack
- OSが入ったプリビルドされたファイルシステム(イメージ的にはDockerのOS image的な?)
- 例えばcflinuxfs3などがあり、これはUbuntu Bionic 18.04ベースのファイルシステム
- buildpack
- app用のフレームワークとランタイムを提供する
- appのソースコード
push, restage, restart違い
push
- appを停止し新しいdropletをコンパイルして起動する
- dropletは最新のappのソースコードを用いてコンパイルされる
- サービスのバインドやappが使用する環境変数を追加した場合は設定が適用される
restage
- appを停止し新しいdropletをコンパイルして起動する
- dropletは既存のappのソースコードを用いてコンパイルされるため、appのソースコードは更新されない
- サービスのバインドやapp, buildpack用の環境変数を追加した場合は設定が適用される
restart
- appを停止しコンパイル済みのdropletを使って起動する
- サービスのバインドやapp用の環境変数を追加した場合は設定が適用されるが、buildpack用の環境変数を追加した場合はrestageを行って適用する必要がある
比較
比較項目 | push | restage | restart |
---|---|---|---|
droplet | コンパイルし直して起動 | コンパイルし直して起動 | コンパイル済みのものを起動 |
appのソースコードの更新 | 更新される | 更新されない | 更新されない |
buildpackの更新 | 更新される | 更新される | 更新されない |
サービスのバインド・app用の環境変数設定の適用 | 適用される | 適用される | 適用される |
buildpack用の環境変数の適用 | 適用される | 適用される | 適用されない |