C++ アプリケーション向けの CI/CD 設定
前提条件
C++ アプリケーションのコンテナー化 から始まる、ここまでのガイドすべてを終えていること。 本節を進めるには GitHub アカウントと Docker アカウントを持っていることが必要です。
概要
本節では GitHub アクションを利用した CI/CD パイプラインの設定と利用方法について学び、Docker イメージのビルドとテストを行った上で Docker Hub へのプッシュを行います。 これより以下の手順を進めます。
- GitHub 上に新たなリポジトリを生成します。
- GitHub アクションワークフローを定義します。
- ワークフローを実行します。
手順 1: リポジトリの生成
GitHub リポジトリの生成、Docker Hub 機密情報の設定、ソースコードのプッシュを行います。
GitHub 上に 新たなリポジトリを生成 します。
リポジトリの Settings (設定) を開き、Secrets and variables > Actions に進みます。
新たな Repository variable (リポジトリ変数) として、名称を
DOCKER_USERNAME
、その値に自身の Docker ID を設定して生成します。Docker Hub に対しての パーソナルアクセストークン (Personal Access Token; PAT) を新たに生成します。
docker-tutorial
と名付けることにします。 アクセスパーミッションは Read and Write (読み書き) とします。GitHub リポジトリの Repository secrets (リポジトリシークレット) として PAT を追加します。 その名前は
DOCKERHUB_TOKEN
とします。手元のマシン内にあるローカルリポジトリにおいて、以下のコマンドを実行して origin を生成済みのリポジトリに変更します。 ここで
your-username
には GitHub のユーザー名、your-repository
の部分は生成したリポジトリ名とします。$ git remote set-url origin https://github.com/your-username/your-repository.git
以下のコマンドを実行して、ローカルリポジトリから GitHub に向けてのステージング、コミット、プッシュを行います。
$ git add -A $ git commit -m "my commit" $ git push -u origin main
手順 2: ワークフローの設定
Docker Hub に対してのイメージビルド、テスト、プッシュを行う GitHub アクションワークフローを設定します。
GitHub 上の対象リポジトリにアクセスします。 そして Actions (アクション) タブを選びます。
set up a workflow yourself (自分でワークフローを設定) を選びます。
これを行うと、リポジトリないに新たな GitHub アクションワークフローファイルを生成するためのページに進みます。 そのファイルは、デフォルトでは
.github/workflows/main.yml
です。編集画面において、以下の YAML 設定をコピーペーストして変更を決定します。
name: ci on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ vars.DOCKER_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 push: true tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latest
docker/build-push-action
で利用している YAML 文法についての詳細は GitHub Action README を参照してください。
手順 3: ワークフローの実行
ワークフローファイルを保存してジョブ実行します。
Commit changes... (変更のコミット) を選び、
main
ブランチに変更をプッシュします。コミットのプッシュを行うと、ワークフローは自動的に起動します。
Actions (アクション) タブに移動します。 そこにワークフローが表示されます。
ワークフローを選ぶと、全ステップが展開されて表示されます。
ワークフローが完了したら Docker Hub 上のリポジトリ に移動します。
一覧内に新たなリポジトリが表示されていれば、GitHub アクションによって Docker Hub へのイメージのプッシュが成功したということになります。
まとめ
本節では C++ アプリケーション向けの GitHub アクションワークフローの設定方法について学びました。
関連情報
次のステップ
次の節では、デプロイ前に Kubernetes 上のワークロードをローカルにおいてテスト、デバッグする方法について学びます。