2024年5月21日火曜日

GithubActions を使って docker hub に自動でイメージを push する方法

GithubActions を使って docker hub に自動でイメージを push する方法

概要

master push するたびに自動でイメージをビルドして push するようにします

環境

  • macOS 11.7.10
  • GithubActions v3
  • Dockerhub (20240516時点)

Github へのシークレット登録

自分のプロジェクト -> Settings -> Secrets and variables -> Actions -> Repository secrets -> New repository secret

  • DOCKERHUB_TOKEN
  • DOCKERHUB_USERNAME

を追加します

Dockerhub で Personal Access Token の取得

DOCKERHUB_TOKEN は以下で取得します

MyAccount -> Security -> Access Tokens -> New Access Token

.github/workflows/docker.yml の作成

  • vim .github/workflows/docker.yml
name: ci

on:
  push:
    branches:
      - "master"

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          push: true
          tags: kakakikikeke/request-dumper:latest

動作確認

今回は master に push したい際に動作します

  • git push -u origin master

あとはプロジェクトの Acitons を見ると ci というワークフローが流れているのが確認できると思います

refusing to allow a Personal Access Token to create or update workflow 対策

自分のアカウント -> Settings -> Developer Settings -> Personal access tokens -> Tokens (classic)

で git push に使用している PAT を選択し workflow の権限を付与します

最後に

GithubActions を使って自動で docker hub にイメージを push する方法を紹介しました

これでいちいちローカルでイメージの作り直しをしなくて済みます

ちなみにシークレット情報は各プロジェクトごとに設定する必要があります

参考サイト

0 件のコメント:

コメントを投稿