如何在 Google App Engine 上從 jfrog 存盤庫部署 docker 映像?
我想要實作的是將存盤在 jfrog arctifatory 上的 docker 映像部署到 Good App Engine。盡管我發現的所有示例都將影像推送到 Artifact Registry,這是多余的,因為我只想將工件存盤在 jfrog 上。以前有沒有人嘗試過。以下是我可以使用 Cloud Build 的進一步內容:
- name: 'gcr.io/cloud-builders/docker'
dir: /workspace/app
args: [ 'pull', 'myjfrogurl.jfrog.io/$PROJECT_ID:$BRANCH_NAME' ]
然后我稍后使用 terraform 進行部署:
resource "google_app_engine_flexible_app_version" "app_deploy" {
version_id = "v1"
service = var.service_name
runtime = "nodejs"
...
deployment {
container {
# Here is the problem as it needs to be a google URI
image = "myjfrogurl.jfrog.io/${var.project_id}:${var.branch_name}"
}
}
也許有一種方法可以做到這一點,它不需要通過 terraform 或云構建。
編輯 使用以下代碼可以從 jfrog 拉取影像并推送到 Container Registry,在那里它將對 App Engine 或 Cloud Run 可見,但正如答案所說,無法將影像僅存盤在一個地方
# Pull from external repository
- name: 'gcr.io/cloud-builders/docker'
args: [ 'pull', 'myjfrogurl.jfrog.io/$PROJECT_ID:$BRANCH_NAME' ]
# Do a fast build using --cache-from
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build',
'-t', 'gcr.io/$PROJECT_ID/appName:$BRANCH_NAME',
'--cache-from', 'gcr.io/$PROJECT_ID/appName:$BRANCH_NAME',
'.' ]
# Tag the image for Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['tag',
'gcr.io/$PROJECT_ID/appName:$BRANCH_NAME']
# Push to the Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/appName:$BRANCH_NAME']
uj5u.com熱心網友回復:
將 Guillaume Blaquiere 的贊成評論發布為社區 Wiki 答案,以提高社區的知名度:
這對于 App Engine 是不可能的,Cloud Run 也有同樣的限制。
編輯:要將影像部署到 App Engine,需要將影像推送到 Google Container Registry。引擎蓋下的容器注冊表是一個名為eu.artifacts.projectId.appspot.comor的 GCP 存盤桶artifacts.projectId.appspot.com(根據區域 -更多)。Artifacty Registry 是 Container Registry 下的一項服務,用于幫助管理鏡像。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/449993.html
上一篇:HDFS機架感知
