トップ «前の日記(2021/06/16 (水) ) 最新 次の日記(2021/06/18 (金) )» 編集 RSS feed

HsbtDiary


2021/06/17 (木) [長年日記]

heroku でコンテナデプロイをする

heroku で Docker image を使ってデプロイする機能があるのは知ってたけど、one-shot のジョブ以外にまともに使ったことがなかったので、Web アプリケーション、というか Rails アプリケーションをデプロイするにはどうすればいいんだ、ってのを時間をとって調べてみた。

結論としては以下の通り。まずは事前準備としてログインなどをする。

heroku login # heroku にログイン
heroku git:remote -a app-name # 最初の一回のみ実行
heroku container:login # registry にログイン

container:login を別にやらないとダメなのがややダルではある。で、実際にイメージをデプロイするのは以下のような感じ。

docker build . -t app-name/base:latest # 最初の一回のみ実行、変更した場合は再度ビルドを行う
heroku container:push --recursive # Dockerfile.* を全てビルドして push
heroku container:release web # この例だと Dockerfile.web を公開、今後 job などが増えたらその都度置き換える

Dockerfile.* が規約として role に勝手に変換してくれるのはよくできている。個人的な感想としては heroku-buildpack-* で動かしているプロジェクトも将来を見据えると全て Docker 準拠のイメージに変更した上でこのやり方に寄せて行ったほうがアプリケーションのポータビリティも向上するしいいように感じる。

k8s もこれくらい楽にアプリケーションをデプロイできればいいのになあ。それを作るのが技術基盤部門の仕事ではあるけど...。

本日のツッコミ(全1件) [ツッコミを入れる]
# zunda (2021/06/26 (土) 06:41)

DockerだとOS層のセキュリティ更新にもアプリケーション側で対応しなくちゃいけないのがちょっと残念です。