# SDKイメージを使用したビルド方法

# 概要

SDKイメージを自前でビルドするなど、フレームワーク利用方式でご利用いただく場合の方法を紹介します。 (参考 Qmonus SDK Document (opens new window))
ビルド方法としては以下の2種類があります。
 ※ あくまで一例であり他の手段でビルドしても問題ありません。

パターン1: 手動
 gcloudやdockerコマンドを利用してローカル端末などでdocker build&pushする方式

パターン2: Cloud Buildの使用
 Cloud Buildを用いてGitHub Repositoryに対する更新を契機にdocker build&pushを自動で実施する方式



# 前提条件

# Qmonus SDK Labの利用申請が済んでいること

利用申請が済んでいない場合は利用できません。先にお問い合わせフォームから申請してください。

  • 申請した「Qmonus SDK Lab サービスアカウント」 (以下、SA)
    • 本チュートリアルではSAのアドレスを
      gke-internal@your-project.iam.gserviceaccount.com」と記載します。
  • 上記SAの鍵ファイル (JSON)
    • 本チュートリアルでは/path/to/your/sa-key.jsonに配置されているものとします。



# 事前準備

# 1. ビルドするDockerfileを用意する

  • Qmonus SDK Document (opens new window)を参考にDockerfileを作成し、任意のディレクトリに配置する
    ※ 本チュートリアルではDockerfileを/build/Dockerfileに配置されているものとして記載します。
  • 「パターン2: Cloud Build」を実施する場合は任意のGitHubリポジトリにpushする

# 2. ビルドしたイメージを格納するGCP ArtifactRegistryを作成

  • 任意の名称で公式手順 (opens new window)を参考にGCP ArtifactRegistryを作成する
    ※ 本チュートリアルでは「asia-northeast1-docker.pkg.dev/your-project/sample」を作成したとします。
  • 形式: Docker
  • モード: 標準
  • ロケーション タイプ: リージョン
  • その他: 任意

# 3. SAにロールを付与する

gke-internal@your-project.iam.gserviceaccount.com」に対して
asia-northeast1-docker.pkg.dev/your-project/sample」に関するロール、
「Artifact Registry 読み取り (roles/artifactregistry.reader) 」を付与する(公式手順 (opens new window))

# 4.各種ツールのインストール(パターン1のみ)

「パターン1: 手動」でビルドする場合は事前に以下のツールをインストールする


※本チュートリアルではGCPについて記載していますが、AWS/Azureなど他の環境で同等の手順を実施しても問題ございません。



# パターン1: 手動

  1. SAのアクティベート (公式手順 (opens new window))

    gcloud auth login --cred-file=/path/to/your/sa-key.json

  2. Docker設定 (公式手順 (opens new window))

    gcloud auth configure-docker

  3. 動作確認

    docker pull asia.gcr.io/axis-gcp-dev-46876560/axis:v23.1LTS

    ※ docker pullが成功したことを確認してください。

  4. ビルド (公式手順 (opens new window))

    docker build -t asia-northeast1-docker.pkg.dev/your-project/sample/axis:latest /build/DockerfileDir
    上記はimageName:tagとしてaxis:latestと記載しているが任意に指定可能

  5. [必要に応じて] 作成したArtifact Repositoryに書き込み権限のあるGoogleアカウントに切り替え

    5-1. 作成したRepositoryに書き込み権限のあるGoogleアカウントで認証
    (公式手順1 (opens new window), 公式手順2 (opens new window))
    gcloud auth login

    5-2. アカウント切り替え (公式手順 (opens new window))
    gcloud config set account ACCOUNT

  6. Push
    docker push asia-northeast1-docker.pkg.dev/your-project/sample/axis:latest



# パターン2: CloudBuildの使用

  1. Cloud Buildで以下のトリガーを作成
  • イベント
    • 任意
  • ソース
    • リポジトリ
      • Dockerfileが格納されているGitHub Repository
      • 世代は任意
    • タグ
      • 任意
  • 構成
    • 形式
      • Cloud Build 構成ファイル(yaml または json)
    • ロケーション
      • 任意
      • 以下のファイルを{GitHub Repository}/build/cloudbuild.ymlとして作成するかインラインで直接設定する
      • [リポジトリの場合] Cloud Build 構成ファイルの場所
        • cloudbuild.ymlのpath: /build/cloudbuild.yml
  • 詳細設定
    • サービスアカウント
      • gke-internal@your-project.iam.gserviceaccount.com
  1. Cloud Buildのイベントにて指定した操作を実施する
    もしくは作成したCloud Build Triggerを手動で実行