個人で開発しているWebサービスのバックエンドをHerokuで構築しているのですが、ある時、「いちいちデプロイするのめんどくね?」と感じた。。。
Dokcerのイメージを自動でHerokuにデプロイしてくれる方法はないかと模索していると、どうやらGithub Actionsで出来るらしい。
そんなところで、今日はタイトルにも書いてあるとおり、DokcerのイメージをGithub Actionsを使ってHerokuに自動でプロイしていきます。
Actionsの設定ファイル
.github
ディレクトリを作成し、その中にworkflows
というディレクトリを作成する。
$ mkdir .github && mkdir .github/workflows
その.github/workflows
内で任意の名前のyml
形式のファイル名を作成。
この記事ではdeploy-heroku.yml
とします。
$ touch .github/workflows/deploy-heroku.yml
中身は以下をコピペ
# Your workflow name.
name: Deploy to heroku.
on:
push:
branches: [main] # デプロイするブランチ名を選択
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build, Push and Release a Docker container to Heroku.
uses: gonuit/heroku-docker-deploy@v1.3.3
with:
email: ${{ secrets.HEROKU_EMAIL }}
heroku_api_key: ${{ secrets.HEROKU_API_KEY }}
heroku_app_name: ${{ secrets.HEROKU_APP_NAME }}
dockerfile_directory: ./
dockerfile_name: Dockerfile
docker_options: "--no-cache"
process_type: web
環境変数の設定
デプロイするリポジトリのSettings
ページを開き、左のメニューのSecret
ページを開く。
そして、「New repository secret」ボタンを押し以下の環境変数をとそれに対する値を追加。
HEROKU_EMAIL | ログインメールアドレス |
---|---|
HEROKU_API_KEY | APIキー(https://dashboard.heroku.com/account) |
HEROKU_APP_NAME | デプロイするアプリ名 |
これらの設定が完了したら設定ファイル等をプッシュする。
リポジトリの「Actions」タブからビルドおよびデプロイされているかを確認してください。
最後に
最近個人の開発でチームで開発しているのですが、Githubの利便性に日々感謝しております。
今回のGithub Actionsも「これも無料で使えるのか!」と驚きを隠せませんでした。
Herokuに自動デプロイすることで、日々開発効率がグッと上がりますね。
同じ境遇の方の助けになれれば幸いです。
何かご不明点等あればコメントにお知らせください。
以上、「DockerのイメージをGithub ActionsでHerokuにデプロイする」でした。
Thank you for reading.