如何使用 Gradle run/deploy Google AppEngine 托管虚拟机

How to run/deploy Google AppEngine Managed vms using Gradle

我已经推送、运行 并测试了具有自定义 运行time 的托管 VM 作为 AppEngine 应用程序。现在我想让它成为多模块,默认模块是一个 Google Cloud Endpoint 配置为与 Android 一起工作。因此,我使用 Gradle 作为我的构建系统。

现在,我注意到 Google 已将 gcloud 预览应用程序 run/deploy 的一些初始提交到 gradle-appengine-plugin 中: https://github.com/GoogleCloudPlatform/gradle-appengine-plugin/commit/2e4a2b8abb7ec7905012f1f9c12adea7010a41b7

如何使用此扩展程序?我要像这样在我的 build.gradle 中添加一个部分吗?

appengine {
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }
    gcloud {
        project = 'projectId?'
        app {
            dockerHost = tcp://192.168.59.103:2376
            version = 1.4.1
            server = //What goes here?
        }

    }
}

还是我完全错了?

请指导我如何使用它。

此外,具体如何为 "custom vm" 设置 build.gradle 规则,而不是基于标准 java 运行 时间? (因为我不能只将 app.yaml 和 Dockerfile 打包到 war 文件夹中)

我暂时会避免这种情况,插件的 gcloud 部分仍在制定中。至于 "server" 标志,来自 docs,你真的不需要指定它。

您可以尝试 运行 部署的两个选项:

  1. 现在直接使用 gcloud(从命令行)。

  2. 您可以尝试在 Gradle 中执行一个 Exec 任务来调用您的 gcloud,您可以通过执行 AppEnginePlugin.getExplodedAppDirectory(project).absolute path

您必须将 Exec task 添加到您的构建文件中才能将其挂钩。它可能如下所示:

build.gradle

task gcloudExec1(type:Exec) {
    commandline 'gcloud', 'preview', 'app', 'deploy'
    args "--dockerHost=tcp:"
    args "--version=1.4.1"
    ....
    args AppEnginePlugin.getExplodedAppDir(project).absolutepath
}