# 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"]