feat: move codegen out of docker builder
This commit is contained in:
parent
e798f36851
commit
51cea5d0fe
4 changed files with 10 additions and 17 deletions
4
.github/workflows/docker-image.yml
vendored
4
.github/workflows/docker-image.yml
vendored
|
|
@ -67,10 +67,6 @@ jobs:
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: true
|
||||||
build-args: |
|
|
||||||
DB_URL=jdbc:postgresql://localhost:5432/homepage
|
|
||||||
DB_USERNAME=postgres
|
|
||||||
DB_PASSWORD=postgres
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
cache-from: type=gha
|
cache-from: type=gha
|
||||||
|
|
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -38,6 +38,10 @@ replay_pid*
|
||||||
**/build/
|
**/build/
|
||||||
!**/src/**/build/
|
!**/src/**/build/
|
||||||
|
|
||||||
|
# Allow generated code fragments for Docker builds
|
||||||
|
!build/generated-src/
|
||||||
|
!build/generated-resources/
|
||||||
|
|
||||||
# Ignore Gradle GUI config
|
# Ignore Gradle GUI config
|
||||||
gradle-app.setting
|
gradle-app.setting
|
||||||
|
|
||||||
|
|
|
||||||
15
Dockerfile
15
Dockerfile
|
|
@ -1,13 +1,6 @@
|
||||||
# --- Stage 1: Build the JAR ---
|
# --- Stage 1: Build the JAR ---
|
||||||
FROM gradle:9.2.1-jdk21 AS build
|
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
|
# Set working dir
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
|
@ -18,8 +11,12 @@ COPY --chown=gradle:gradle gradle ./gradle
|
||||||
# Copy source code
|
# Copy source code
|
||||||
COPY --chown=gradle:gradle src ./src
|
COPY --chown=gradle:gradle src ./src
|
||||||
|
|
||||||
# Build the fat jar
|
# Copy pre-generated code fragments
|
||||||
RUN ./gradlew clean build --no-daemon
|
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 ---
|
# --- Stage 2: Run the app ---
|
||||||
FROM eclipse-temurin:21-jdk-alpine
|
FROM eclipse-temurin:21-jdk-alpine
|
||||||
|
|
|
||||||
|
|
@ -295,8 +295,4 @@ tasks.register("cleanGenerated") {
|
||||||
delete(generatedSourcesDir)
|
delete(generatedSourcesDir)
|
||||||
logger.lifecycle("✓ Cleaned generated code directories")
|
logger.lifecycle("✓ Cleaned generated code directories")
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named("clean") {
|
|
||||||
dependsOn("cleanGenerated")
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue