From 38cfdbc0661e841f759d75b32293c553cd7e3aa2 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Wed, 13 Nov 2019 13:34:01 +0100 Subject: [PATCH] Polish "Improve Deploying to Containers section" See gh-18932 --- .../src/main/asciidoc/deployment.adoc | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/deployment.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/deployment.adoc index bb7d9a68f25b..43528623db69 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/deployment.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/deployment.adoc @@ -39,27 +39,30 @@ For example, using a `Dockerfile` you could express it in this form: [indent=0] ---- - FROM openjdk:8-jdk-alpine AS builder - WORKDIR target/dependency - ARG fatjar - COPY ${fatjar} app.jar - RUN jar -xf ./app.jar - - 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: + FROM openjdk:8-jdk-alpine AS builder + WORKDIR target/dependency + ARG appjar + COPY ${appjar} app.jar + RUN jar -xf ./app.jar + + 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"] +---- + +Assuming the above `Dockerfile` is the current directory, your docker image can be built specifying the path to your application jar, as show in the following example: + [indent=0] ---- -docker build --build-arg fatjar=./full/path/to/your/springboot/app.jar + docker build --build-arg appjar=path/to/myapp.jar . ---- + [[cloud-deployment]] == Deploying to the Cloud Spring Boot's executable jars are ready-made for most popular cloud PaaS (Platform-as-a-Service) providers.