# 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のアドレスを
- 上記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: 手動」でビルドする場合は事前に以下のツールをインストールする
gcloud CLI
gcloud CLIのインストール方法 (opens new window)
※本チュートリアルではGCPについて記載していますが、AWS/Azureなど他の環境で同等の手順を実施しても問題ございません。
# パターン1: 手動
SAのアクティベート (公式手順 (opens new window))
gcloud auth login --cred-file=/path/to/your/sa-key.json
Docker設定 (公式手順 (opens new window))
gcloud auth configure-docker
動作確認
docker pull asia.gcr.io/axis-gcp-dev-46876560/axis:v23.1LTS
※ docker pullが成功したことを確認してください。
ビルド (公式手順 (opens new window))
docker build -t asia-northeast1-docker.pkg.dev/your-project/sample/axis:latest /build/DockerfileDir
上記はimageName:tagとしてaxis:latestと記載しているが任意に指定可能[必要に応じて] 作成した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
Push
docker push asia-northeast1-docker.pkg.dev/your-project/sample/axis:latest
# パターン2: CloudBuildの使用
- Cloud Buildで以下のトリガーを作成
- イベント
- 任意
- ソース
- リポジトリ
- Dockerfileが格納されているGitHub Repository
- 世代は任意
- タグ
- 任意
- リポジトリ
- 構成
- 形式
- Cloud Build 構成ファイル(yaml または json)
- ロケーション
- 任意
- 以下のファイルを{GitHub Repository}/build/cloudbuild.ymlとして作成するかインラインで直接設定する
- cloudbuild.yml サンプルダウンロード
- substitutionsは適切に設定する
- [リポジトリの場合] Cloud Build 構成ファイルの場所
- cloudbuild.ymlのpath:
/build/cloudbuild.yml
- cloudbuild.ymlのpath:
- 形式
- 詳細設定
- サービスアカウント
gke-internal@your-project.iam.gserviceaccount.com
- サービスアカウント
- Cloud Buildのイベントにて指定した操作を実施する
もしくは作成したCloud Build Triggerを手動で実行