Skip to content

Add option to run gradle via docker - #108

Open
alxndrsn wants to merge 1 commit into
getodk:masterfrom
alxndrsn:dockerise
Open

alxndrsn wants to merge 1 commit into
getodk:masterfrom
alxndrsn:dockerise

Conversation

@alxndrsn

@alxndrsn alxndrsn commented Nov 2, 2026

Copy link
Copy Markdown

Closes #104

What has been done to verify that this works as intended?

$ ./gradle-docker check jar
[gradle-docker] Checking for existing image...
[gradle-docker] Existing image found.
Starting a Gradle Daemon, 1 busy and 5 stopped Daemons could not be reused, use --status for details
> Task :generateBuildConfig UP-TO-DATE
> Task :compileBuildConfig UP-TO-DATE
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :checkstyleMain UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources UP-TO-DATE
> Task :testClasses UP-TO-DATE
> Task :checkstyleTest UP-TO-DATE
> Task :test UP-TO-DATE
> Task :check UP-TO-DATE
> Task :jar UP-TO-DATE

BUILD SUCCESSFUL in 2s
10 actionable tasks: 10 up-to-date
$ REBUILD_GRADLE_DOCKER_IMAGE=1 ./gradle-docker check jar
[gradle-docker] Checking for existing image...
[gradle-docker] Building docker image...
[+] Building 1.7s (6/6) FINISHED                                                                                                                             docker:default
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 152B                                                                                                                                   0.0s
 => [internal] load metadata for docker.io/library/eclipse-temurin:8-jdk                                                                                               1.3s
 => [internal] load .dockerignore                                                                                                                                      0.1s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [1/2] FROM docker.io/library/eclipse-temurin:8-jdk@sha256:e9255b50040337b0dec91027868dca1952ef5441bf0c8f878c5f790eaedbfea2                                         0.0s
 => CACHED [2/2] WORKDIR /app                                                                                                                                          0.0s
 => exporting to image                                                                                                                                                 0.2s
 => => exporting layers                                                                                                                                                0.0s
 => => writing image sha256:8eaffad2481bdc6b5afbac145650c0aca2ca812110c0c3eac9d8ab77351e8dcf                                                                           0.1s
 => => naming to docker.io/library/gradlew-jdk-8                                                                                                                       0.0s
[gradle-docker] Docker image built.
Starting a Gradle Daemon, 1 busy and 1 incompatible and 5 stopped Daemons could not be reused, use --status for details
> Task :generateBuildConfig UP-TO-DATE
> Task :compileBuildConfig UP-TO-DATE
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :checkstyleMain UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources UP-TO-DATE
> Task :testClasses UP-TO-DATE
> Task :checkstyleTest UP-TO-DATE
> Task :test UP-TO-DATE
> Task :check UP-TO-DATE
> Task :jar UP-TO-DATE

BUILD SUCCESSFUL in 2s
10 actionable tasks: 10 up-to-date

Why is this the best possible solution? Were any other approaches considered?

Alternative approaches:

  • Remove direct gradlew usage completely, and only allow containerised approach. This is likely to be much more complicated and break existing workflows.
  • More extensive documentation for setting up a dev env. Given the cadence of this project's development, this is likely to get out of date.

Are there any risks to merging this code? If so, what are they?

No risks - it does not modify existing workflows.

@alxndrsn alxndrsn changed the title Add option to run gradle via docker. Add option to run gradle via docker Nov 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document java version requirement / upgrade gradle / allow modern JDKs / containerise build

1 participant