如何在谷歌应用引擎上使用Artifactory的docker图像



如何在谷歌应用引擎上部署来自Artifactory的docker映像?

我试图实现的是将存储在jfrog Artifactory上的docker映像部署到一个好的应用程序引擎中。尽管我发现的所有例子都是将图像推送到工件注册表,这是多余的,因为我只想将工件存储在jfrog上。以前有人尝试过吗?以下是我可以进一步使用云构建:

- name: 'gcr.io/cloud-builders/docker'
dir: /workspace/app
args: [ 'pull', 'myjfrogurl.jfrog.io/$PROJECT_ID:$BRANCH_NAME' ]

然后我稍后使用地形来部署:

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}"
}
}

也许有一种方法可以做到这一点,它不需要通过地形或云构建。

编辑使用以下代码可以从jfrog中提取图像,并将其推送到Container Registry,在那里它将对应用程序引擎或云运行可见,尽管答案是不可能将图像仅存储在一个地方

# 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']

将Guillaume Blaquiere的评论作为社区Wiki答案发布,以提高社区的可见性:

这对应用程序引擎来说是不可能的,云运行也有同样的限制。

要将映像部署到应用程序引擎,需要将映像推送到Google Container Registry。引擎盖容器注册表下面是一个名为eu.artifacts.projectId.appspot.comartifacts.projectId.appspot.com的GCP存储桶(根据区域-更多(。Artifacty Registry是容器注册表下的一项服务,用于帮助管理图像。

最新更新