31 lines
807 B
Docker
31 lines
807 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM node:22-alpine AS frontend-build
|
|
WORKDIR /app/frontend
|
|
|
|
COPY frontend/package.json frontend/package-lock.json ./
|
|
RUN npm ci
|
|
|
|
COPY frontend/ ./
|
|
RUN npm run build
|
|
|
|
|
|
FROM maven:3.9.9-eclipse-temurin-21 AS backend-build
|
|
WORKDIR /app
|
|
|
|
COPY backend/pom.xml backend/
|
|
RUN --mount=type=cache,target=/root/.m2 mvn -f backend/pom.xml -q -DskipTests dependency:go-offline
|
|
|
|
COPY backend/ backend/
|
|
COPY --from=frontend-build /app/frontend/dist/ backend/src/main/resources/static/
|
|
RUN --mount=type=cache,target=/root/.m2 mvn -f backend/pom.xml -q -DskipTests package spring-boot:repackage
|
|
|
|
|
|
FROM eclipse-temurin:21-jre-alpine AS runtime
|
|
WORKDIR /app
|
|
|
|
COPY --from=backend-build /app/backend/target/app-0.0.1-SNAPSHOT.jar app.jar
|
|
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
|