未设置因 JAVA_HOME 失败的 CloudBuild fastlane 任务,并且在您的 PATH 中找不到 'java' 命令

CloudBuild fastlane task failing with JAVA_HOME is not set and no 'java' command could be found in your PATH

我正在尝试 运行 在 Google Cloud Build 中构建快速通道,但是我收到以下错误:

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

我的第一步是安装 Android SDK,它工作正常,然后 运行 fastlane 命令,但是每次,无论我在 nameid:fastlane 之前我得到了相同的 Java 错误。我已经从 Cloud Builder and Community Cloud Builders github 存储库下载了 Android 和 Fastlane 图像,并将它们放在我们的 GCP 项目存储库中,因此每个图像都可以在 name 任务中访问。

steps:
  # Android SDK
  - name: 'gcr.io/$PROJECT_ID/android:29'
    id: android
    args: ["./gradlew", "assembleDebug"]

  # run fastlane
  - name: 'gcr.io/$PROJECT_ID/fastlane'
    id: fastlane
    args: ['distribute_staging', 'signingPassword:${_PASSWORD}', 'firebaseToken:${_TOKEN}']

请记住,每一步都是容器。它们一个接一个地加载,执行和卸载的任务。只有/workspace目录从一步到另一步。

因此,在您的第一步中,您加载了一个 android 构建器,您可以构建 Java 东西,因为 Java 已安装在容器中。然后卸载

第二步是快车道。看看 Dockerfile,这是一张 ruby 图片。没有 Java 里面,因此,你的过程不能工作。你必须构建一个自定义工作器

  • 或者从 fastlane 基础镜像安装Java
  • 或者从 Java 图像(Android?)并在其上安装 Ruby 和 fastlane。