9c1ccb33dc
eclipse-temurin:17-jre-focal -> eclipse-temurin:17-jre-focal@sha256:55c1ff40a91898c456dc5a874a66db17b6aa1b4aef8d9cac1ad3b194575638a1 [atomist:generated] [atomist-skill:atomist/docker-base-image-policy] Signed-off-by: Atomist Bot <bot@atomist.com>
40 lines
1.2 KiB
Docker
Executable File
40 lines
1.2 KiB
Docker
Executable File
# syntax=docker/dockerfile:1.4
|
|
|
|
FROM --platform=$BUILDPLATFORM maven:3.8.5-eclipse-temurin-17@sha256:a554849fd74b733acb76379bd7df0ea26635a48ab9b54ede1e94bbeaaf448cf6 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@sha256:55c1ff40a91898c456dc5a874a66db17b6aa1b4aef8d9cac1ad3b194575638a1
|
|
|
|
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"]
|