概要
GitHub ActionsでHerokuに自動デプロイしようとして苦戦した話。
Dockerを使用してビルドしようとしたらハマったのでどなたかのご参考になれば。
開発環境
Docker 20.10.7
Docker Compose 1.29.2
Ruby on Rails 6.0.6.1
結論
DockerによるHeroku containerでのビルドは行わず、通常のビルドパックでデプロイしたら成功した。
経緯
Heroku上でDockerを利用したHeroku containerでのビルドを試みたが、うまくいかない。Heroku公式によると推奨していない方法らしく、通常のビルドパックによるビルドが推奨されていた。
思いっきりHerokuダッシュボードのsettingに書いてあったが、読めていなかった。
ビルドパックによるビルドを選択(nodejsとrubyのビルドパック)。
下記のコードでuserdocer: false
を記述してDocker containerによるビルドが行われないように指定。
name: deploy to heroku with Buildpacks
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Deploy
uses: akhileshns/heroku-deploy@v3.13.15
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: 'my-memoria'
heroku_email: ${{secrets.HEROKU_EMAIL}}
usedocker: false
事前にheroku.ymlを作成しており、不要となったProcfileを削除していたので再作成。
Dockerによるデプロイならheroku.ymlがあればデプロイできるが、Procfileがないとデプロイ時のアクションが実行されないので注意。