FROM node:20-alpine AS frontend-build WORKDIR /build/frontend ARG VITE_API_URL=/api ENV VITE_API_URL=${VITE_API_URL} COPY frontend/package*.json ./ RUN npm ci COPY frontend/ ./ RUN npm run build FROM maven:3.9.11-eclipse-temurin-21 AS backend-build WORKDIR /build/backend COPY backend/pom.xml ./ RUN mvn -B -q -DskipTests dependency:go-offline COPY backend/ ./ COPY --from=frontend-build /build/frontend/dist ./src/main/resources/static RUN mvn -B -q -DskipTests package FROM eclipse-temurin:21-jre-alpine AS runtime WORKDIR /app RUN addgroup -S spring && adduser -S spring -G spring COPY --from=backend-build /build/backend/target/muh-backend-0.0.1-SNAPSHOT.jar /app/app.jar USER spring:spring EXPOSE 8090 ENTRYPOINT ["java", "-jar", "/app/app.jar"]