Skip to content

Commit

Permalink
Document configuration for building images with Colima
Browse files Browse the repository at this point in the history
Closes gh-34522
  • Loading branch information
wilkinsona committed Oct 25, 2023
1 parent 9a23e13 commit 666f68e
Show file tree
Hide file tree
Showing 6 changed files with 107 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,26 @@ include::../gradle/packaging/boot-build-image-docker-host-podman.gradle.kts[tags

TIP: With the `podman` CLI installed, the command `podman info --format='{{.Host.RemoteSocket.Path}}'` can be used to get the value for the `docker.host` configuration property shown in this example.

[[build-image.examples.docker.colima]]
==== Docker Configuration for Colima

The plugin can communicate with the Docker daemon provided by https://github.com/abiosoft/colima[Colima].
The `DOCKER_HOST` environment variable can be set by using the command `export DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}').`

The plugin can also be configured to use Colima daemon by providing connection details similar to those shown in the following example:

[source,groovy,indent=0,subs="verbatim,attributes",role="primary"]
.Groovy
----
include::../gradle/packaging/boot-build-image-docker-host-colima.gradle[tags=docker-host]
----

[source,kotlin,indent=0,subs="verbatim,attributes",role="secondary"]
.Kotlin
----
include::../gradle/packaging/boot-build-image-docker-host-colima.gradle.kts[tags=docker-host]
----

[[build-image.examples.docker.auth]]
==== Docker Configuration for Authentication

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
plugins {
id 'java'
id 'org.springframework.boot' version '{gradle-project-version}'
}

tasks.named("bootJar") {
mainClass = 'com.example.ExampleApplication'
}

// tag::docker-host[]
tasks.named("bootBuildImage") {
docker {
host = "unix://${System.properties['user.home']}/.colima/docker.sock"
}
}
// end::docker-host[]

tasks.register("bootBuildImageDocker") {
doFirst {
println("host=${tasks.bootBuildImage.docker.host}")
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import org.springframework.boot.gradle.tasks.bundling.BootJar
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage

plugins {
java
id("org.springframework.boot") version "{gradle-project-version}"
}

tasks.named<BootJar>("bootJar") {
mainClass.set("com.example.ExampleApplication")
}

// tag::docker-host[]
tasks.named<BootBuildImage>("bootBuildImage") {
docker {
host = "unix://${System.getProperty("user.home")}/.colima/docker.sock"
}
}
// end::docker-host[]

tasks.register("bootBuildImageDocker") {
doFirst {
println("host=${tasks.getByName<BootBuildImage>("bootBuildImage").docker.host}")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,14 @@ void bootBuildImageWithDockerHostPodman() {
.contains("bindHostToBuilder=true");
}

@TestTemplate
void bootBuildImageWithDockerHostColima() {
BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-docker-host-colima")
.build("bootBuildImageDocker");
assertThat(result.getOutput())
.contains("host=unix://" + System.getProperty("user.home") + "/.colima/docker.sock");
}

@TestTemplate
void bootBuildImageWithDockerUserAuth() {
BuildResult result = this.gradleBuild.script("src/docs/gradle/packaging/boot-build-image-docker-auth-user")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,20 @@ The plugin can be configured to use podman local connection by providing connect
include::../maven/packaging-oci-image/docker-podman-pom.xml[tags=docker-podman]
----

TIP: With the `podman` CLI installed, the command `podman info --format='{{.Host.RemoteSocket.Path}}'` can be used to get the value for the `docker.host` configuration property shown in this example.
TIP: With the `colima` CLI installed, the command `podman info --format='{{.Host.RemoteSocket.Path}}'` can be used to get the value for the `docker.host` configuration property shown in this example.

[[build-image.examples.docker.colima]]
==== Docker Configuration for Colima

The plugin can communicate with the Docker daemon provided by https://github.com/abiosoft/colima[Colima].
The `DOCKER_HOST` environment variable can be set by using the command `export DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}').`

The plugin can also be configured to use Colima daemon by providing connection details similar to those shown in the following example:

[source,xml,indent=0,subs="verbatim,attributes",tabsize=4]
----
include::../maven/packaging-oci-image/docker-colima-pom.xml[tags=docker-colima]
----

[[build-image.examples.docker.auth]]
==== Docker Configuration for Authentication
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- tag::docker-colima[] -->
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<docker>
<host>unix:///${user.home}/.colima/docker.sock</host>
</docker>
</configuration>
</plugin>
</plugins>
</build>
</project>
<!-- end::docker-colima[] -->

0 comments on commit 666f68e

Please sign in to comment.