gradle - 如何使用 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 将图像推送到注册表?
解决方案
更新:我想通了——尽管我想在未来解决这个问题,但我不必使用 jib。我将尝试使用我的 gradle 配置,看看这是否是一个可能的问题,但我使用的是 Gradle 6.3,所以我认为这不是问题。
从我构建的 docker 映像中,我可以像这样使用 docker push 命令
docker push gcr.io/<application-name>/<image-name>:<tag>
在我允许从云外壳访问注册表后,我的图像会显示在容器注册表中。
推荐阅读
- javascript - 随机嵌入消息 discord.js 的问题 [已解决]
- flutter - 我的平面按钮就在我的文本字段下方,当键盘出现时它会被隐藏
- reactjs - 如何将 react native 复选框与 formik 集成
- markdown - Docsify README 页面不滚动
- markdown - 在 gist 中创建表
- spring - Spring Security 在某些 url 级别限制对某些角色的访问
- laravel - 显示在单击获取模式按钮后在 axios 响应中收到的引导模式
- node.js - NodeJS 将 SSL 添加到 HTTPserver
- javascript - 使用递归,检索嵌套对象结构的对象名称返回未定义
- javascript - 选中所有复选框