Buildpackのpack CLIを使ってローカルビルドができたので、
GCPのCloud Buildを使ってリモートでビルドしてみる。
- BuildpackでNode.jsアプリのDockerイメージを作成する - くらげになりたい。
- ソースからCloud Runにデプロイする(Buildpacks/Node.js) - くらげになりたい。
Artifact Registryの作成
Cloud Buildを利用するとDockerイメージは、
Artifact Registryにpushされるので、
まずはコンテナのリポジトリを作成する。
GCPの管理画面から作成すればOK
- 形式: Docker
- モード: 標準
- ロケーションタイプ: リージョン
- リージョン: asia-northeast1(東京)
- 暗号化: Googleが管理する暗号鍵
- クリーンアップポリシー: アーティファクトを削除
- ポリシータイプ: 最新バージョンを保持
- 保持数: 3
リージョンやクリーンアップポリシーはお好みで。
作成すると、こんな形式のパスで作成される。
<REGION>-docker.pkg.dev/<PROJECT_ID>/<REPOSITORY_NAME> 例) asia-northeast1-docker.pkg.dev/my-project/my-repository
Cloud Buildでビルドする
ビルド/デプロイするソースは、前回と同様でこんな感じ。
src/ index.js package.json
// package.json { "node": "20", "scripts": { "start": "node ./index.js" } }
あとは、gcloud builds
コマンドを実行すればOK
#!/bin/bash REGION="asia-northeast1" PROJECT_ID="my-project" REPO_NAME="my-repository" IMAGE_NAME="my-docker-image" SRC_DIR="./src" gcloud builds submit ${SRC_DIR} \ --pack image=${REGION}-docker.pkg.dev/${PROJECT_ID}/${REPO_NAME}/${IMAGE_NAME} \ --project=${PROJECT_ID}
公式ドキュメントではこのあたり。
Artifact RegistryのDockerイメージを利用する
公式ドキュメントではこのあたり
Artifact Registryは非公開のため、 認証が必要なので、設定を追加する必要がある。
# gcloud認証情報ヘルパーを使った認証方法を設定
gcloud auth configure-docker asia-northeast1-docker.pkg.dev
あとは、docker pull
をすればOK
# Dockerイメージのpull docker pull asia-northeast1-docker.pkg.dev/my-project/my-repository/my-docker-image:latest # Dockerイメージの実行 docker run --rm asia-northeast1-docker.pkg.dev/my-project/my-repository/my-docker-image:latest
以上!! Cloud RunじゃなくてもArtifact Registryを使えるようになった(*´ω`*)