如何在谷歌应用引擎上部署来自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.com
或artifacts.projectId.appspot.com
的GCP存储桶(根据区域-更多(。Artifacty Registry是容器注册表下的一项服务,用于帮助管理图像。