You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Spring Boot+Gradle+Jib+Cloud Run+Cloud Build部署示例及文档

Spring Boot + Gradle + Jib + Cloud Build 部署参考示例

核心配置示例

1. Gradle 配置(build.gradle.kts)

引入Jib插件并配置Spring Boot相关参数,明确指定主类:

plugins {
    id("org.springframework.boot") version "3.2.0"
    id("io.spring.dependency-management") version "1.1.4"
    id("com.google.cloud.tools.jib") version "3.4.0"
    kotlin("jvm") version "1.9.20"
    kotlin("plugin.spring") version "1.9.20"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"

java {
    sourceCompatibility = JavaVersion.VERSION_17
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> {
    useJUnitPlatform()
}

jib {
    from {
        image = "eclipse-temurin:17-jre-alpine"
    }
    to {
        image = "us-central1-docker.pkg.dev/[PROJECT-ID]/[REPOSITORY]/[IMAGE-NAME]"
        tags = setOf("latest")
    }
    container {
        mainClass = "com.example.demo.DemoApplication" // 替换为你的主类全路径
        ports = listOf("8080")
        environment = mapOf("SPRING_PROFILES_ACTIVE" to "prod")
    }
}

2. cloudbuild.yaml 配置

steps:
  # 构建并推送镜像到Artifact Registry
  - name: 'gradle:8.5-jdk17'
    entrypoint: './gradlew'
    args: ['jib', '--image=us-central1-docker.pkg.dev/[PROJECT-ID]/[REPOSITORY]/[IMAGE-NAME]:latest']
    env:
      - 'GOOGLE_CLOUD_PROJECT=[PROJECT-ID]'

  # 部署镜像到Cloud Run
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    entrypoint: 'gcloud'
    args:
      - 'run'
      - 'deploy'
      - '[SERVICE-NAME]'
      - '--image=us-central1-docker.pkg.dev/[PROJECT-ID]/[REPOSITORY]/[IMAGE-NAME]:latest'
      - '--region=us-central1'
      - '--platform=managed'
      - '--allow-unauthenticated' # 按需设置是否允许未认证访问

关键说明

  • Gradle的Jib配置中mainClass必须指定正确的主类全路径,这是避免"Could not find or load main class"错误的核心配置项
  • 确保Cloud Build服务账号拥有Artifact Registry的推送权限和Cloud Run的部署权限
  • 将配置中的[PROJECT-ID]、[REPOSITORY]、[IMAGE-NAME]、[SERVICE-NAME]替换为你的实际资源名称

内容的提问来源于stack exchange,提问作者user8787347

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:17:18