From ac949d78513c15e039998f196dc0d633789f8ed2 Mon Sep 17 00:00:00 2001 From: Scott Frederick Date: Tue, 31 Mar 2020 13:37:55 -0500 Subject: [PATCH] Document remote Docker configuration This commit adds documentation for the configuration required to use a remote Docker daemon with the `build-image` Maven goal or the `bootBuildImage` Gradle task. See gh-20538 --- .../docs/asciidoc/packaging-oci-image.adoc | 21 +++++++++++++++++- .../docs/asciidoc/packaging-oci-image.adoc | 22 ++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc index c2409d72b7..4f89412956 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/asciidoc/packaging-oci-image.adoc @@ -1,10 +1,29 @@ [[build-image]] == Packaging OCI images The plugin can create an https://github.com/opencontainers/image-spec[OCI image] from executable jars using https://buildpacks.io[Cloud Native Buildpacks]. -Images can be built using the `bootBuildImage` task and a local Docker installation. +Images can be built using the `bootBuildImage` task. The task is automatically created when the `java` plugin is applied and is an instance of {boot-build-image-javadoc}[`BootBuildImage`]. +[[build-image-docker-daemon]] +=== Docker daemon + +The `bootBuildImage` task requires access to a Docker daemon. +By default, it will communicate with a Docker daemon over a local connection. +This works with https://docs.docker.com/install/[Docker Engine] on all supported platforms without configuration. + +Environment variables can be set to configure the `bootBuildImage` task to use the https://minikube.sigs.k8s.io/docs/tasks/docker_daemon/[Docker daemon provided by minikube]. +The following table shows the environment variables and their values: + +|=== +| Environment variable | Description + +| DOCKER_HOST | URL containing the host and port for the Docker daemon - e.g. `tcp://192.168.99.100:2376` +| DOCKER_TLS_VERIFY | Enable secure HTTPS protocol when set to `1` (optional) +| DOCKER_CERT_PATH | Path to certificate and key files for HTTPS (required if `DOCKER_TLS_VERIFY=1`, ignored otherwise) +|=== + +On Linux and macOS, these environment variables can be set using the command `eval $(minikube docker-env)` after minikube has been started. [[build-image-customization]] === Image Customizations diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc index c3834b4f44..534052a9e1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/asciidoc/packaging-oci-image.adoc @@ -2,7 +2,7 @@ == Packaging OCI Images The plugin can create an https://github.com/opencontainers/image-spec[OCI image] using https://buildpacks.io/[Cloud Native Buildpacks]. -Images can be built using the `build-image` goal and a local Docker installation. +Images can be built using the `build-image` goal. The easiest way to get started is to invoke `mvn spring-boot:build-image` on a project. It is possible to automate the creation of an image whenever the `package` phase is invoked, as shown in the following example: @@ -31,6 +31,26 @@ TIP: While the buildpack runs from an <>, it is no When the `build-image` repackages the application, it applies the same settings as the `repackage` goal would, i.e. dependencies can be excluded using one of the exclude options, and Devtools is automatically excluded by default (you can control that using the `excludeDevtools` property). +[[build-image-docker-daemon]] +=== Docker daemon + +The `build-image` goal requires access to a Docker daemon. +By default, it will communicate with a Docker daemon over a local connection. +This works with https://docs.docker.com/install/[Docker Engine] on all supported platforms without configuration. + +Environment variables can be set to configure the `build-image` goal to use the https://minikube.sigs.k8s.io/docs/tasks/docker_daemon/[Docker daemon provided by minikube]. +The following table shows the environment variables and their values: + +|=== +| Environment variable | Description + +| DOCKER_HOST | URL containing the host and port for the Docker daemon - e.g. `tcp://192.168.99.100:2376` +| DOCKER_TLS_VERIFY | Enable secure HTTPS protocol when set to `1` (optional) +| DOCKER_CERT_PATH | Path to certificate and key files for HTTPS (required if `DOCKER_TLS_VERIFY=1`, ignored otherwise) +|=== + +On Linux and macOS, these environment variables can be set using the command `eval $(minikube docker-env)` after minikube has been started. + [[build-image-customization]] === Image Customizations