From 51cea5d0fe8c96788ab741fafdb89cac8fd15cbf Mon Sep 17 00:00:00 2001 From: Dokkae6949 Date: Sat, 13 Dec 2025 23:33:17 +0100 Subject: [PATCH] feat: move codegen out of docker builder --- .github/workflows/docker-image.yml | 4 ---- .gitignore | 4 ++++ Dockerfile | 15 ++++++--------- build.gradle.kts | 4 ---- 4 files changed, 10 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 722c946..1c21d63 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -67,10 +67,6 @@ jobs: with: context: . push: true - build-args: | - DB_URL=jdbc:postgresql://localhost:5432/homepage - DB_USERNAME=postgres - DB_PASSWORD=postgres tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha diff --git a/.gitignore b/.gitignore index 0e0ad97..a0a695a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,10 @@ replay_pid* **/build/ !**/src/**/build/ +# Allow generated code fragments for Docker builds +!build/generated-src/ +!build/generated-resources/ + # Ignore Gradle GUI config gradle-app.setting diff --git a/Dockerfile b/Dockerfile index 8afe2ae..8e2c09b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,6 @@ # --- Stage 1: Build the JAR --- FROM gradle:9.2.1-jdk21 AS build -ARG DB_URL -ARG DB_USERNAME -ARG DB_PASSWORD -ENV DB_URL=${DB_URL} -ENV DB_USERNAME=${DB_USERNAME} -ENV DB_PASSWORD=${DB_PASSWORD} - # Set working dir WORKDIR /app @@ -18,8 +11,12 @@ COPY --chown=gradle:gradle gradle ./gradle # Copy source code COPY --chown=gradle:gradle src ./src -# Build the fat jar -RUN ./gradlew clean build --no-daemon +# Copy pre-generated code fragments +COPY --chown=gradle:gradle build/generated-src ./build/generated-src +COPY --chown=gradle:gradle build/generated-resources ./build/generated-resources + +# Build the fat jar without cleaning (preserves generated code) +RUN ./gradlew build -x clean -x cleanGenerated -x jooqCodegen -x flywayMigrate -x precompileJte --no-daemon # --- Stage 2: Run the app --- FROM eclipse-temurin:21-jdk-alpine diff --git a/build.gradle.kts b/build.gradle.kts index 2181e03..9847905 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -295,8 +295,4 @@ tasks.register("cleanGenerated") { delete(generatedSourcesDir) logger.lifecycle("✓ Cleaned generated code directories") } -} - -tasks.named("clean") { - dependsOn("cleanGenerated") } \ No newline at end of file