Improve Deploying to Containers section

See gh-18932
This commit is contained in:
Guillaume Lours 2019-11-07 17:39:29 +01:00 committed by Stephane Nicoll
parent a74d5b1cf5
commit 6cf05aeb50
1 changed files with 19 additions and 9 deletions

View File

@ -35,19 +35,29 @@ Once you have unpacked the jar file, you can also get an extra boost to startup
More efficient container images can also be created by copying the dependencies to the image as a separate layer from the application classes and resources (which normally change more frequently). More efficient container images can also be created by copying the dependencies to the image as a separate layer from the application classes and resources (which normally change more frequently).
There is more than one way to achieve this layer separation. There is more than one way to achieve this layer separation.
For example, using a `Dockerfile` you could express it in this form (assuming the jar is already unpacked at `target/dependency`): For example, using a `Dockerfile` you could express it in this form:
[indent=0] [indent=0]
---- ----
FROM openjdk:8-jdk-alpine FROM openjdk:8-jdk-alpine AS builder
VOLUME /tmp WORKDIR target/dependency
ARG DEPENDENCY=target/dependency ARG fatjar
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib COPY ${fatjar} app.jar
COPY ${DEPENDENCY}/META-INF /app/META-INF RUN jar -xf ./app.jar
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.example.MyApplication"]
----
FROM openjdk:8-jre-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY --from=builder ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY --from=builder ${DEPENDENCY}/META-INF /app/META-INF
COPY --from=builder ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.example.MyApplication"]
----
and then build your docker image by passing the full path to your application jar:
[indent=0]
----
docker build --build-arg fatjar=./full/path/to/your/springboot/app.jar
----
[[cloud-deployment]] [[cloud-deployment]]