# Stage 1: Build FROM gradle:8.11-jdk17 AS build WORKDIR /project # Copy Gradle config files COPY gradle/libs.versions.toml gradle/libs.versions.toml COPY server/build.gradle.kts server/build.gradle.kts # Create server-only settings and root build files (skip Android module entirely) RUN echo 'pluginManagement { repositories { mavenCentral(); gradlePluginPortal() } }\n\ dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS); repositories { mavenCentral() } }\n\ rootProject.name = "VBHelper"\n\ include(":server")' > settings.gradle.kts RUN echo 'plugins {\n\ alias(libs.plugins.kotlin.jvm) apply false\n\ alias(libs.plugins.kotlin.serialization) apply false\n\ alias(libs.plugins.ktor) apply false\n\ }' > build.gradle.kts # Copy server source COPY server/src server/src # Build fat JAR RUN gradle :server:buildFatJar --no-daemon # Stage 2: Runtime FROM eclipse-temurin:17-jre-alpine WORKDIR /app COPY --from=build /project/server/build/libs/*-all.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "app.jar"]