Heroku

Heroku

[11]

https://devcenter.heroku.com/articles/custom-domains によると CNAME を使うので、 https://example.jp/ みたいな最上位のドメインで動かすことができない...

CloudFlare https://support.cloudflare.com/hc/en-us/articles/200169056-Does-CloudFlare-support-CNAME-APEX-at-the-root- 使えばいいか?

MySQL を使うにはアカウント確認 (クレジットカード) が必要。試してない。

MySQL バージョンいくつだろうか...

$ git init
...
$ ~/dev/heroku/bin/heroku git:clone -a fuga1
$ ~/dev/heroku/bin/heroku config:set BUILDPACK_URL=https://github.com/wakaba/heroku-buildpack-perl-pmbp
$ git push heroku master
$ ~/dev/heroku/bin/heroku auth:token

submodule の submodule も再帰的に展開される。無効化できなそう。

Travis CI の heroku deploy は標準では Git じゃなくて Anvil を使っていて動作がまた少し違う... うまくいかないがなぜうまくいかないか調べる方法もわからんw Git 使うようにしたら動くのでそちらのほうが良いか。

しばらくアクセスがないと止まる。アクセスがあると自動復帰するが少し時間がかかる。

[5] heroku コマンドは tar+gz を拾ってきて展開するだけでも動く状態になっているみたいです。 (ruby は必要。)

[3] Heroku 上に配置された状態では Gitリポジトリーではなくなっているようです。

[2] submodule は再帰的に clone されます。ただし API からの場合は submodule は展開されないようです >>1。そんなんでいいのでしょうか...

[4] サーバープロセスのエラーのログはどこからもみれないようです(?)。動作中のサーバーそのものを調べることはできませんが、 heroku run bash を使えば同じような環境で bash を実行して、その中でサーバーを動作させてみることができます。

[6] Add-ons から Logentries を選んで追加すると、 Heroku の実行ログが Web で見れるようになる。メールも送られる。 heroku コマンドや ssh を使わなくても実行エラーを把握できるようになる。 (Free プランで良い。)

[7] 1日分の無料枠を使い果たすと、 Application Error と表示されるようになります。 (サーバーエラー時と同じです。) 無料枠枯渇エラーだというのは管理画面でわかります。

Heroku

[8] Announcing Heroku Free SSL Beta and Flexible Dyno Hours | Heroku () https://blog.heroku.com/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours

[9] Herokuプロキシは、 HTTP keep-alive について特別な扱いをせず、 アプリケーションサーバー接続を閉じるとプロキシクライアントの間の接続も閉じるようです。

[10] HerokuプロクシHTTP/2 に対応していません。

[12] Heroku Button

[14] Herokugit リポジトリーには ssh だけでなく HTTP でもアクセスできます。 https://git.heroku.com/heroku-app-name.git のような URL になります。 基本認証が必要です。名前は任意の文字列 (無視される)、 パスワードはアカウントの APIキーです。 >>13

[15] Herokugit push したら

error: RPC failed; HTTP 504 curl 22 The requested URL returned error: 504

... とか

fatal: protocol error: bad line length character: fata
error: error in sideband demultiplexer

... という意味不明なエラーが出ることがあります。

How to fix long-running `git push` to Heroku remote responding `504 GATEWAY_TIMEOUT`? - Stack Overflow, https://stackoverflow.com/questions/51494103/how-to-fix-long-running-git-push-to-heroku-remote-responding-504-gateway-time/51494104?stw=2#51494104 によると heroku repo:reset ... で解消するそうです。

これだけのためにわざわざ heroku を入れるのは面倒ですが、 実際はただの HTTP DELETE 要求を送っているだけです。

curl -X DELETE --user :heroku-api-key https://git.heroku.com/heroku-app-name.git

... のようなコマンドだけでOK。 すごく時間がかかるかもしれませんが、待ちましょう。

[13] Git を使用したデプロイ | Heroku Dev Center, https://devcenter.heroku.com/ja/articles/git#http-git-authentication