GitHub Container Registry (ghcr.io) の使い方
GitHub Container Registry (ghcr.io) は、GitHub が提供するコンテナイメージのレジストリです。 Public Packages であれば無料で利用でき、GitHub Actions と組み合わせることでデータ転送料金も無料になります。 ghcr.io は2通りの使い方があります。 ローカルから Docker CLI を使ってイメージをビルドしてプッシュする方法 GitHub Actions を使ってコードの変更に合わせて自動でイメージをビルドしてプッシュする方法 今回はGitHub Actions を使って自動でイメージをビルドしてプッシュする方法を紹介します。 GitHub Actions から自動でプッシュする GitHub Actions を使えば、コードをプッシュするだけで自動的にイメージのビルドとプッシュができます。以下はワークフローの例です。 name: Docker Build and Push on: push: branches: - main # GHCR へのプッシュには packages: write が必要 permissions: contents: read packages: write jobs: build-and-push: runs-on: ubuntu-latest steps: # ソースコードをチェックアウト - name: Check out code uses: actions/checkout@v4 # ghcr.io にログイン - name: Log in to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} # デフォルトの GITHUB_TOKEN を利用 password: ${{ secrets.GITHUB_TOKEN }} # Docker イメージをビルドしてプッシュ - name: Build and push Docker image uses: docker/build-push-action@v6 with: context: . push: true tags: ghcr.io/${{ github.repository }}:latest トラブルシューティング GitHub Actions から ghcr.io にプッシュする際に、以下のようなエラーが出ました。 ...