
- Herokuのアプリケーションを作成する
- Deployment Method で Container Resigtry を選択
- Deploy your Docker-based app の通り実行
- Dockerfile の作成
- Docker イメージのビルドとpush
- リリースコマンドの実行
- デプロイできたはずだが...
- 結局
Herokuのアプリケーションを作成する

Deployment Method で Container Resigtry を選択

Deploy your Docker-based app の通り実行
Heroku CLI (Herokuのコマンド) はインストールされているとします。
# CLI から Heroku にログイン heroku login # Heroku の Container Registry にログインする heroku container:login
Dockerfile の作成
今回はこのような Dockerfile を作成した。
FROM phpearth/php:7.3-litespeed
COPY ./lightspeed/vhosts /etc/litespeed/vhosts
COPY . /var/lib/litespeed/Example
# アプリケーションがリクエストを受けるべきポートが
# 環境変数 $PORT として Heroku から与えられるので
# その $PORT で起動できるようにしておく必要があります
# 今回はsedで無理やり LiteSpeed の設定ファイルを書き換えることにした
COPY ./litespeed/httpd_config.conf /tmp/httpd_config.conf
RUN sed -e "s/8088/${PORT}/g" /tmp/httpd_config.conf > /etc/litespeed/httpd_config.conf
Docker イメージのビルドとpush
下記コマンドを叩くだけで Dockerfile を元にビルド&pushまでやってくれます。
webは web サーバーのイメージということを指しています(多分。この辺のオプションがよくわからなかった)nicommon-zappingはアプリ名です
heroku container:push web -a nicommon-zapping
アプリ名とは
これです。

リリースコマンドの実行
heroku container:release web -a nicommon-zapping
デプロイできたはずだが...
アクセスしても 500 エラー。HerokuのActivityのログを見てもデプロイはされている様子。

ログを見ると

No web processes running と言われてしまっている。
2020-01-02T10:26:34.909079+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=nicommon-zapping.herokuapp.com request_id=ca9c6baa-bc33-4594-8f7b-39a4a3a0e5f0 fwd="126.23.166.85" dyno= connect= service= status=503 bytes= protocol=https
heroku ps:scale web=1
でもやっぱりなんかだめだった
結局
Procfile を書いてデプロイした!PHPとDockerとHerokuのかみ合わせが良くなかった。