| 123456789101112131415161718192021222324252627282930313233343536373839 |
- # syntax=docker/dockerfile:1.4
- FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17 AS builder
- WORKDIR /workdir/server
- COPY pom.xml /workdir/server/pom.xml
- RUN mvn dependency:go-offline
- COPY src /workdir/server/src
- RUN mvn install
- FROM builder AS dev-envs
- RUN <<EOF
- apt-get update
- apt-get install -y --no-install-recommends git
- EOF
- RUN <<EOF
- useradd -s /bin/bash -m vscode
- groupadd docker
- usermod -aG docker vscode
- EOF
- # install Docker tools (cli, buildx, compose)
- COPY --from=gloursdocker/docker / /
- CMD ["mvn", "spring-boot:run"]
- FROM builder as prepare-production
- RUN mkdir -p target/dependency
- WORKDIR /workdir/server/target/dependency
- RUN jar -xf ../*.jar
- FROM eclipse-temurin:17-jre-focal
- EXPOSE 8080
- VOLUME /tmp
- ARG DEPENDENCY=/workdir/server/target/dependency
- COPY --from=prepare-production ${DEPENDENCY}/BOOT-INF/lib /app/lib
- COPY --from=prepare-production ${DEPENDENCY}/META-INF /app/META-INF
- COPY --from=prepare-production ${DEPENDENCY}/BOOT-INF/classes /app
- ENTRYPOINT ["java","-cp","app:app/lib/*","com.company.project.Application"]
|