首页 > 解决方案 > 如何使用 gradle jib 插件将镜像推送到 google cloud Container Registry

问题描述

如何使用 gradle jib 插件将镜像推送到 google cloud Container Registry

我正在尝试部署一个简单的 Spring-Boot 应用程序并使用谷歌云和谷歌 Kubernetes 引擎(GKE)进行部署。我也在关注教程,但是教程使用了 maven,我想尝试在我的项目中使用 gradle。我能够构建自己的 docker 映像以及在 google 的云 shell 中运行 docker 映像,但我似乎无法弄清楚如何将映像推送到容器注册表。

本教程给出的 Maven 命令是

./mvnw -DskipTests com.google.cloud.tools:jib-maven-plugin:build -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/hello-java:v1

我曾尝试使用 gradle 版本,但是出了点问题,我无法弄清楚它是什么,以及尝试了docs中的一些说明。

./gradlew build com.google.cloud.tools.jib:build -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/hello-java:v3

我认为我不需要在 build.gradle 文件中添加插件,但我可能是错的,我是使用 jib 工具的新手。

然后我将能够使用以下内容运行图像

docker run -ti --rm -p 8080:8080 gcr.io/$GOOGLE_CLOUD_PROJECT/hello-java:v1

我要部署的仓库位于此处

作为第二个问题,是否可以从我的本地开发环境将图像发布到谷歌云容器注册表,或者我是否必须通过 Google Cloud Shell 将图像推送到注册表?

标签: gradlegoogle-cloud-platformjib

解决方案


更新:我想通了——尽管我想在未来解决这个问题,但我不必使用 jib。我将尝试使用我的 gradle 配置,看看这是否是一个可能的问题,但我使用的是 Gradle 6.3,所以我认为这不是问题。

从我构建的 docker 映像中,我可以像这样使用 docker push 命令

docker push gcr.io/<application-name>/<image-name>:<tag>

在我允许从云外壳访问注册表后,我的图像会显示在容器注册表中。


推荐阅读