INPUTしたらOUTPUT!

忘れっぽいんでメモっとく

経産省の住所変換コンポーネントをherokuにデプロイする

経産省が公開している住所変換コンポーネントは以下の通りDockerizeされているが、Herokuにデプロイしようとしたところハマったので手順をメモしておく。


Dockerfileの準備

コンテナイメージを作成するDockerfileは以下から取得する。

github.com


Container Registry & Runtime (Docker Deploys) | Heroku Dev Center

The web process must listen for HTTP traffic on $PORT, which is set by Heroku. EXPOSE in Dockerfile is not respected, but can be used for local testing. Only HTTP requests are supported.

とあるのでポートを8080から$PORTに変更する。

IMI 住所変換コンポーネント Herokuデプロイ用Dockerfile


Herokuにデプロイ

ほぼContainer Registry & Runtime (Docker Deploys) | Heroku Dev Centerに記載されている通り。


1. コンテナレジストリにログイン

$ heroku container:login


2. 作成したDockerfileのあるディレクトリに移動しアプリ作成

$ heroku create
Creating app... done, ⬢ <アプリ名>


3. gitリポジトリの紐付け

次の手順でコンテナレジストリにpushする際にError: Missing required flagというエラーが出るのでHerokuとgitリポジトリを紐づけておく。

参考:[Herokuエラー]Error: Missing required flagが出た - Qiita

$ heroku git:remote -a <2で作成されたアプリ名>


4. コンテナイメージをビルドしコンテナレジストリにpush

heroku container:pushの引数にはprocess-type(今回はwebアプリのためweb)を指定する。コンテナ名を指定して動作せず小一時間悩んだ・・・

参考:Rails on DockerをHerokuでDeployするまで - Qiita

$  heroku container:push web


5. 2で作成したherokuアプリにビルドしたイメージをリリース

$ heroku container:release web


6. ブラウザで開いて確認

$ heroku open

f:id:tak95:20200810163422p:plain



非ITエンジニアにとってIMI住所変換コンポーネントの使用はハードル高いけど、Herokuにデプロイすることでチームで使えるようになるので参考になれば幸い。