GitHub Actions で Windows の Docker イメージをビルドしてみた

GitHub Actions で Windows の Docker イメージをビルドしてみた

はじめに

テントの中から失礼します。製造ビジネステクノロジー部の「てんとタカハシ」です!

先日投稿した記事では、CodeBuild のリザーブドキャパシティフリートを使用して、Windows の Docker イメージをビルドする方法を試してみました。

https://dev.classmethod.jp/articles/codebuild-reserved-capacity-fleet-windows-docker-build/

リザーブドキャパシティフリートは、ビルドの頻度が高い場合や、短時間でビルドを完了させたい場合に有効な手段です。ただし、専用のコンピューティングリソースを事前にプロビジョニングする特性上、リソースの使用状況に関係なく分単位で料金が発生するため注意が必要です。

一方で、ビルドの頻度や時間的な制約がそれほど厳しくなく、料金を抑えたい場合には GitHub Actions が有力な選択肢になります。パブリックリポジトリでは無料で使用することができ、プライベートリポジトリでは実行時間に応じた料金体系になります。

今回は GitHub Actions を使用して、Windows の Docker イメージをビルドする方法を試します。ビルドの内容は先日投稿した記事と同様です。

料金

GitHub Actions をプライベートリポジトリで使用する場合は、アカウントのプランに応じて毎月一定の無料枠(分数)が提供され、無料枠を超えた後は分単位で料金が発生します。

無料枠の消費速度や料金は OS によって異なります。Windows の場合は、Linux と比べてそれぞれ「2倍」になるため注意が必要です(2025/02/04 時点)。

https://docs.github.com/ja/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions

無料枠の消費速度

Windows は無料枠の消費速度が Linux の2倍です。

無料枠が 2,000 分の場合は、1,000 分の使用で無料枠がすべて消費されます。

無料枠を超えた後の料金

Windows は分単位の料金が Linux の2倍です。

  • Windows の標準ランナー:0.016 USD / 分
  • Linux の標準ランナー:0.008 USD / 分

Windows の標準ランナーを 1,000 分使用した場合の料金は 16 USD です。

Dockerfile

Windows Server 2022 の Docker イメージを使用します。ビルド時に Hello World を出力します。

Dockerfile
FROM mcr.microsoft.com/windows/servercore:ltsc2022

RUN powershell -Command "Write-Host 'Hello World'"

Workflow

ビルドした後にコンテナを起動して、Hello World! を出力します。

windows-image-build.yml
name: Windows Image Build Sample

on:
  workflow_dispatch:

jobs:
  build:
    runs-on: windows-2022
    steps:
      - name: checkout repository
        uses: actions/checkout@v4

      - name: docker build
        run: |
          docker build -t helloworld .
          docker images

      - name: docker run
        run: docker run helloworld powershell -Command "Write-Host 'Hello World!'"

実行

「Windows Image Build Sample」のワークフローを開始します。

スクリーンショット 2025-01-30 21.04.46

Docker イメージのビルドが成功して、Hello World! が出力されます。

スクリーンショット 2025-01-30 21.06.53

おわりに

今回は GitHub Actions を使用して Windows の Docker イメージをビルドする方法を試してみました。Dockerfile と YAML ファイルを用意するだけで手軽に検証できました。

GitHub Actions をプライベートリポジトリで使用する場合は、OS ごとに無料枠の消費速度や料金が異なる点にご注意ください。

CodeBuild のリザーブドキャパシティフリートと比べて異なる特性がありますので、プロジェクトの状況に合わせて検討することが大事だと感じました。

最後までお読みいただきありがとうございました!この記事が少しでも参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.