48 lines
1.7 KiB
Docker
48 lines
1.7 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
FROM maven:3-eclipse-temurin-23-alpine AS dependency
|
|
WORKDIR /app
|
|
COPY pom.xml ./
|
|
COPY domain/pom.xml domain/
|
|
COPY domain/spi/pom.xml domain/spi/
|
|
COPY domain/api/pom.xml domain/api/
|
|
COPY domain/service/pom.xml domain/service/
|
|
COPY domain/data/pom.xml domain/data/
|
|
COPY application/pom.xml application/
|
|
COPY infrastructure/pom.xml infrastructure/
|
|
COPY bootstrap/pom.xml bootstrap/
|
|
COPY common/pom.xml common/
|
|
ARG SPRING_PROFILES_ACTIVE
|
|
RUN mvn -P${SPRING_PROFILES_ACTIVE} dependency:go-offline \
|
|
&& mvn dependency:get -Dartifact=net.bytebuddy:byte-buddy-agent:1.15.11 -B \
|
|
&& mvn dependency:get -Dartifact=org.mapstruct:mapstruct-processor:1.6.3 -B \
|
|
&& mvn dependency:get -Dartifact=org.projectlombok:lombok-mapstruct-binding:0.2.0 -B \
|
|
&& mvn dependency:get -Dartifact=com.mysql:mysql-connector-j:9.1.0 -B \
|
|
&& mvn dependency:get -Dartifact=org.flywaydb:flyway-core:10.20.1 -B \
|
|
&& mvn dependency:get -Dartifact=org.flywaydb:flyway-mysql:10.20.1 -B
|
|
|
|
FROM dependency AS builder
|
|
COPY domain/spi/src domain/spi/src
|
|
COPY domain/api/src domain/api/src
|
|
COPY domain/service/src domain/service/src
|
|
COPY domain/data/src domain/data/src
|
|
COPY application/src application/src
|
|
COPY infrastructure/src infrastructure/src
|
|
COPY bootstrap/src bootstrap/src
|
|
COPY common/src common/src
|
|
ARG SPRING_PROFILES_ACTIVE
|
|
RUN mvn -o clean package -P${SPRING_PROFILES_ACTIVE} -Dmaven.test.skip=true -DskipTests
|
|
|
|
#FROM builder AS test
|
|
#RUN mvn -o clean test
|
|
|
|
FROM eclipse-temurin:23-jdk-alpine AS production
|
|
WORKDIR /opt/app
|
|
EXPOSE 8080
|
|
COPY --from=builder /app/bootstrap/target/bootstrap*.jar xpeditis.jar
|
|
COPY wait-for-it.sh ./
|
|
RUN chmod +x wait-for-it.sh
|
|
COPY entrypoint.sh ./
|
|
RUN chmod +x entrypoint.sh
|
|
ENTRYPOINT ["./entrypoint.sh"]
|