LoginSignup
1
0

Github ActionsでDocker Imageが自動ビルドされるようにしてみた話

Last updated at Posted at 2023-12-10

はじめに

前回はfluxを使ってhelmやkustomizeを自動で適用できるようにしました。

今回は、前々回導入した自動デプロイ機能に関連して、自動ビルド基盤を作っていこうと思います。

完成品はこちらのリポジトリで公開しています。
https://github.com/piny940/portfolio

権限の設定

レポジトリの設定から、ワークフローに権限を与えます。

workflow permission

actions permissions

参考: https://github.com/docker/build-push-action/issues/687

workflowを設定

.github/workflows/release.yamlに次のように記述

name: Docker Build for Release
on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  frontend:
    runs-on: ubuntu-latest
    steps:
      - name: Check out
        uses: actions/checkout@v3

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: Githubアカウント名
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Build and push Docker images
        uses: docker/build-push-action@v5
        with:
          push: true
          context: .
          file: Dockerfile
          tags: |
            ghcr.io/Githubアカウント名/アプリ名:v1.0.0-${{ github.sha }}-${{ github.run_number }}
            ghcr.io/Githubアカウント名/アプリ名:latest

2~5行目: mainブランチにpushされたときにworkflowを実行します。
6行目: 手動でフローを実行できるようにします。
12~17行目: ghcr.ioにログインします。
20~28行目: DockerイメージをBuild・Pushします。

これでmainブランチにpushしたら自動でDockerイメージがビルドされるようになります。作成されたImageはGithubのProfile > Packagesから確認できます。

最後に

今回はGithub Actionsを用いて自動ビルドの基盤を整えました。次回はStaging環境の作成に挑戦したいと思います。

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0