36 lines
910 B
Docker
36 lines
910 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG JAVA_VERSION=25
|
|
ARG API_VERSION=v1
|
|
|
|
FROM eclipse-temurin:${JAVA_VERSION}-jdk AS build
|
|
ARG API_VERSION
|
|
WORKDIR /workspace
|
|
|
|
COPY .mvn/ .mvn/
|
|
COPY mvnw mvnw
|
|
COPY pom.xml pom.xml
|
|
COPY checkstyle/ checkstyle/
|
|
COPY config/ config/
|
|
COPY src/ src/
|
|
|
|
RUN chmod +x mvnw
|
|
RUN ./mvnw -pl "src/api/${API_VERSION}" -am package -DskipTests
|
|
RUN JAR_PATH="$(find "src/api/${API_VERSION}/target" -maxdepth 1 -type f -name '*.jar' ! -name 'original-*.jar' | head -n 1)" \
|
|
&& test -n "$JAR_PATH" \
|
|
&& cp "$JAR_PATH" /workspace/app.jar
|
|
|
|
FROM eclipse-temurin:${JAVA_VERSION}-jre AS runtime
|
|
ARG API_VERSION=v1
|
|
ARG APP_PORT=8080
|
|
ENV API_VERSION=${API_VERSION}
|
|
ENV APP_PORT=${APP_PORT}
|
|
ENV SERVER_PORT=${APP_PORT}
|
|
ENV SERVER_SERVLET_CONTEXT_PATH=/api/${API_VERSION}
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /workspace/app.jar /app/app.jar
|
|
|
|
EXPOSE ${APP_PORT}
|
|
|
|
ENTRYPOINT ["java", "-jar", "/app/app.jar"]
|