LoginSignup
20
17

More than 3 years have passed since last update.

GitHub ActionsからGitHub Container RegistryにDockerイメージをpushする

Last updated at Posted at 2020-09-02

GitHub Container Registryそのものやコマンドによるpushは、GitHub Container Registry(ghcr.io)にDockerイメージをpushする手順で詳しく説明されていますので、そちらをご覧ください。

手順

概要

GitHub ActionsからDockerHubにDockerイメージをpushする手順がGitHub Docsにあります(手順のドキュメント)。
今回はそれを流用し、push先をGitHub Container Registry(ghcr.io)に向けるだけです。

GitHub Container Registry(ghcr.io)へのログイン情報の設定

GitHubアカウントの設定からPersonal Access Token(PAT)を作成します(手順のドキュメント)。
権限として、read:packageswrite:packages にチェックします。
作成したPATをGitHubリポジトリに暗号化されたシークレットとして保存します(手順のドキュメント)。
ここでは CR_PAT というキーで保存します。

ワークフロー(GitHub Actions)の作成

GitHub Packagesへのイメージの公開ドキュメントを参考にワークフローを作成します。
変更するポイントは
- GitHub PackagesGitHub Container Registry に置換
- docker.pkg.github.comghcr.io に置換
- ${{ secrets.GITHUB_TOKEN }}${{ secrets.CR_PAT }} に置換
- repository: の値を ${{ github.repository }} に変更

以下にGitHub Container Registry(ghcr.io)にpushするワークフローを示します。

.github/workflows/docker-publish.yml
name: Publish Docker image
on:
  release:
    types: [published]
jobs:
  push_to_registry:
    name: Push Docker image to GitHub Container Registry
    runs-on: ubuntu-latest
    steps:
      - name: Check out the repo
        uses: actions/checkout@v2
      - name: Push to GitHub Container Registry
        uses: docker/build-push-action@v1
        with:
          username: ${{ github.actor }}
          password: ${{ secrets.CR_PAT }}
          registry: ghcr.io
          repository: ${{ github.repository }}
          tag_with_ref: true
        env:
          DOCKER_BUILDKIT: 1

検証

上記のワークフローの例では、GitHub リリースの公開をトリガーに動作するため、公開して検証します。
検証の内容もGitHub Container Registry(ghcr.io)にDockerイメージをpushする手順でされていますので、そちらをご覧ください。

まとめ

GitHub Container Registry(ghcr.io)の説明など諸々と省きましたが、GitHub ActionsでGitHub Container Registry(ghcr.io)にpushするワークフローを紹介しました。
とても簡単にできますので、ぜひ活用ください。

20
17
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
20
17