You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ho...@apache.org on 2022/10/21 15:18:22 UTC
[solr] branch branch_9x updated: Use lazy-evaluated vars in docker gradle build (#1092)
This is an automated email from the ASF dual-hosted git repository.
houston pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new 89adf62cf09 Use lazy-evaluated vars in docker gradle build (#1092)
89adf62cf09 is described below
commit 89adf62cf0902f351f65d12df2772d9bfa79327c
Author: Houston Putman <ho...@apache.org>
AuthorDate: Fri Oct 21 10:33:14 2022 -0400
Use lazy-evaluated vars in docker gradle build (#1092)
(cherry picked from commit 76ff487f4a4796de515c9acb6cb5c446bea711b8)
---
solr/docker/build.gradle | 44 +++++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 21 deletions(-)
diff --git a/solr/docker/build.gradle b/solr/docker/build.gradle
index 18927c36d9e..b7cf405c0fb 100644
--- a/solr/docker/build.gradle
+++ b/solr/docker/build.gradle
@@ -24,13 +24,13 @@ description = 'Solr Docker image'
apply plugin: 'base'
// Solr Docker inputs
-def dockerImageRepo = propertyOrEnvOrDefault("solr.docker.imageRepo", "SOLR_DOCKER_IMAGE_REPO", "apache/solr")
-def dockerImageTag = propertyOrEnvOrDefault("solr.docker.imageTag", "SOLR_DOCKER_IMAGE_TAG", "${version}")
-def dockerImageName = propertyOrEnvOrDefault("solr.docker.imageName", "SOLR_DOCKER_IMAGE_NAME", "${dockerImageRepo}:${dockerImageTag}")
-def baseDockerImage = propertyOrEnvOrDefault("solr.docker.baseImage", "SOLR_DOCKER_BASE_IMAGE", 'eclipse-temurin:17-jre')
-def officialDockerImageName = propertyOrEnvOrDefault("solr.docker.imageName", "SOLR_DOCKER_IMAGE_NAME", "${dockerImageRepo}-official:${dockerImageTag}")
+def dockerImageRepo = "${ -> propertyOrEnvOrDefault("solr.docker.imageRepo", "SOLR_DOCKER_IMAGE_REPO", "apache/solr") }"
+def dockerImageTag = "${ -> propertyOrEnvOrDefault("solr.docker.imageTag", "SOLR_DOCKER_IMAGE_TAG", project.version) }"
+def dockerImageName = "${ -> propertyOrEnvOrDefault("solr.docker.imageName", "SOLR_DOCKER_IMAGE_NAME", "${dockerImageRepo}:${dockerImageTag}") }"
+def baseDockerImage = "${ -> propertyOrEnvOrDefault("solr.docker.baseImage", "SOLR_DOCKER_BASE_IMAGE", 'eclipse-temurin:17-jre') }"
+def officialDockerImageName = "${ -> propertyOrEnvOrDefault("solr.docker.imageName", "SOLR_DOCKER_IMAGE_NAME", "${dockerImageRepo}-official:${dockerImageTag}") }"
-def releaseGpgFingerprint = propertyOrDefault('signing.gnupg.keyName',propertyOrDefault('signing.keyId',''));
+def releaseGpgFingerprint = "${ -> propertyOrDefault('signing.gnupg.keyName',propertyOrDefault('signing.keyId','')) }"
// Build directory locations
def imageIdFile = "$buildDir/image-id"
@@ -138,9 +138,9 @@ task dockerBuild(dependsOn: configurations.solrTgz) {
exec {
standardInput = configurations.solrTgz.singleFile.newDataInputStream()
commandLine "docker", "build",
- "-f", "solr-${version}/docker/Dockerfile",
+ "-f", "solr-${ -> project.version }/docker/Dockerfile",
"--iidfile", imageIdFile,
- "--build-arg", "BASE_IMAGE=${inputs.properties.baseDockerImage}",
+ "--build-arg", "BASE_IMAGE=${ -> inputs.properties.baseDockerImage}",
"-"
}
}
@@ -149,9 +149,9 @@ task dockerBuild(dependsOn: configurations.solrTgz) {
doLast {
def dockerImageId = file(imageIdFile).text
project.logger.lifecycle("Solr Docker Image Created")
- project.logger.lifecycle("\tID: \t$dockerImageId")
- project.logger.lifecycle("\tBase Image: \t$baseDockerImage")
- project.logger.lifecycle("\tSolr Version: \t$version")
+ project.logger.lifecycle("\tID: \t${ -> dockerImageId }")
+ project.logger.lifecycle("\tBase Image: \t${ -> baseDockerImage }")
+ project.logger.lifecycle("\tSolr Version: \t${ -> project.version }")
}
outputs.files(imageIdFile)
@@ -272,7 +272,7 @@ ext {
// NOTE: SHA is lazy computed...
'SOLR_TGZ_SHA': "${ -> checksum(configurations.solrTgz.singleFile) }",
- 'RELEASE_MANAGER_GPG_FINGERPRINT': "${releaseGpgFingerprint}"
+ 'RELEASE_MANAGER_GPG_FINGERPRINT': "${ -> releaseGpgFingerprint}"
]
]
}
@@ -292,15 +292,17 @@ The final Dockerfiles are merely the snippet headers combined with the snippet b
def fileName = "Dockerfile.${ -> details.name.toLowerCase(Locale.ROOT) }"
def outFile = file("$dockerfilesDirPath/${fileName}")
- def props = [
- // Values defined here should be common (and consistent) across both Dockerfiles
- 'BASE_IMAGE': baseDockerImage,
- 'SOLR_VERSION': version,
- * : details.props
- ]
+
tasks.create("createDockerfile${details.name}", Copy) {
description "Creates ${details.desc}"
-
+
+ def props = [
+ // Values defined here should be common (and consistent) across both Dockerfiles
+ 'BASE_IMAGE': baseDockerImage,
+ 'SOLR_VERSION': "${ -> project.version}",
+ * : details.props
+ ]
+
dependsOn tasks.createBodySnippetDockerfile
inputs.properties(props)
inputs.file("$buildDir/snippets/Dockerfile.body.snippet")
@@ -408,8 +410,8 @@ task testBuildDockerfileOfficial(type: Copy) {
'--add-host', "mock-solr-dl-server:${mockServerIp}",
'--no-cache', // force fresh downloads from our current network
"--iidfile", imageIdFileOfficial,
- '--build-arg', "SOLR_CLOSER_URL=http://mock-solr-dl-server:9876/solr-${version}.tgz",
- '--build-arg', "SOLR_ARCHIVE_URL=http://mock-solr-dl-server:9876/solr-${version}.tgz",
+ '--build-arg', "SOLR_CLOSER_URL=http://mock-solr-dl-server:9876/solr-${ -> project.version}.tgz",
+ '--build-arg', "SOLR_ARCHIVE_URL=http://mock-solr-dl-server:9876/solr-${ -> project.version}.tgz",
'--tag', officialDockerImageName,
'-'
}