Node.js アプリケーション向けの CI/CD 設定
前提条件
Node.js アプリケーションのコンテナー化 から始まる、ここまでのガイドすべてを終えていること。 本節を進めるには 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とします。 アクセス権限は読み書き可能としてください。GitHub リポジトリにおいて、この PAT を Repository secret (リポジトリの機密情報) として追加します。 その名前を
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 test uses: docker/build-push-action@v6 with: target: test load: true - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 push: true target: prod tags: ${{ vars.DOCKER_USERNAME }}/${{ github.event.repository.name }}:latestdocker/build-push-actionの YAML 文法についての詳細は GitHub Action README を参照してください。
手順 3: ワークフローの実行
ワークフローファイルを保存してジョブ実行します。
Commit changes... (変更のコミット) を選んで、変更内容を
mainブランチにプッシュします。コミット内容をプッシュすると、ワークフローが自動的に実行されます。
Actions (アクション) タブに進み、ワークフローを表示します。
ワークフローを選ぶと、すべてのステップを確認することができます。
ワークフローが終了したら、ご自身の Docker Hub のリポジトリ にアクセスします。
その一覧リスト内に新たなリポジトリ名があれば、GitHub アクションによる Docker Hub へのイメージプッシュが成功したことを意味しています。
まとめ
本節では、Node.js アプリケーションに対する GitHub アクションワークフローの設定方法について学びました。
関連情報
次のステップ
次はデプロイを行う前に、Kubernetes 上でのローカルなテストとデバッグ方法について学びます。