From 3e5a16cfec50876d20ea77b075070932c6464c7d Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 3 Mar 2021 20:24:43 +0000 Subject: [PATCH] Include log4j transform jar in docker build context tasks (#69808) Ensure that the log4j transform jar is included in the generated Docker build context. Also makes some small fixes to the Iron Bank Dockerfile. --- distribution/docker/build.gradle | 2 +- .../docker/docker-build-context/build.gradle | 12 ++++++++++++ .../ironbank-docker-build-context/build.gradle | 16 ++++++++++++++-- distribution/docker/src/docker/Dockerfile | 8 ++++++-- .../docker/ubi-docker-build-context/build.gradle | 14 ++++++++++++++ 5 files changed, 47 insertions(+), 5 deletions(-) diff --git a/distribution/docker/build.gradle b/distribution/docker/build.gradle index fbf231246ab3a..7e434e9469c94 100644 --- a/distribution/docker/build.gradle +++ b/distribution/docker/build.gradle @@ -187,7 +187,7 @@ void addCopyDockerContextTask(Architecture architecture, boolean oss, DockerBase with dockerBuildContext(architecture, oss, base, true) - into(base == DockerBase.IRON_BANK ? 'scripts' : 'bin') { + into('bin') { from configurations.transformLog4jJar } diff --git a/distribution/docker/docker-build-context/build.gradle b/distribution/docker/docker-build-context/build.gradle index 0f5a9e5d6773f..0587534de5445 100644 --- a/distribution/docker/docker-build-context/build.gradle +++ b/distribution/docker/docker-build-context/build.gradle @@ -2,6 +2,14 @@ import org.elasticsearch.gradle.DockerBase apply plugin: 'base' +configurations { + transformLog4jJar +} + +dependencies { + transformLog4jJar project(path: ":distribution:docker:transform-log4j-config", configuration: 'default') +} + tasks.register("buildDockerBuildContext", Tar) { archiveExtension = 'tar.gz' compression = Compression.GZIP @@ -9,6 +17,10 @@ tasks.register("buildDockerBuildContext", Tar) { archiveBaseName = "elasticsearch" // Non-local builds don't need to specify an architecture. with dockerBuildContext(null, false, DockerBase.CENTOS, false) + + into('bin') { + from configurations.transformLog4jJar + } } tasks.named("assemble").configure {dependsOn "buildDockerBuildContext"} diff --git a/distribution/docker/ironbank-docker-build-context/build.gradle b/distribution/docker/ironbank-docker-build-context/build.gradle index 00ddbe6ac374f..04b9fa7b2761b 100644 --- a/distribution/docker/ironbank-docker-build-context/build.gradle +++ b/distribution/docker/ironbank-docker-build-context/build.gradle @@ -3,12 +3,24 @@ import org.elasticsearch.gradle.DockerBase apply plugin: 'base' +configurations { + transformLog4jJar +} + +dependencies { + transformLog4jJar project(path: ":distribution:docker:transform-log4j-config", configuration: 'default') +} + tasks.register("buildIronBankDockerBuildContext", Tar) { archiveExtension = 'tar.gz' compression = Compression.GZIP archiveClassifier = "docker-build-context" archiveBaseName = "elasticsearch-ironbank" - // We always treat Iron Bank builds as local, because that is how they - // are built + // We supply an architecture here because we always treat Iron Bank + // builds as local - because that is how they are built. with dockerBuildContext(Architecture.X64, false, DockerBase.IRON_BANK, true) + + into('scripts') { + from configurations.transformLog4jJar + } } diff --git a/distribution/docker/src/docker/Dockerfile b/distribution/docker/src/docker/Dockerfile index 472a92a303264..bc386cd7ebbb7 100644 --- a/distribution/docker/src/docker/Dockerfile +++ b/distribution/docker/src/docker/Dockerfile @@ -181,9 +181,13 @@ LABEL name="Elasticsearch" \\ release="1" \\ summary="Elasticsearch" \\ description="You know, for search." +<% } %> -RUN mkdir /licenses && \\ - cp LICENSE.txt /licenses/LICENSE +<% if (docker_base == 'ubi') { %> +RUN mkdir /licenses && cp LICENSE.txt /licenses/LICENSE +<% } else if (docker_base == 'iron_bank') { %> +RUN mkdir /licenses && cp LICENSE.txt /licenses/LICENSE +COPY LICENSE /licenses/LICENSE.addendum <% } %> ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/docker-entrypoint.sh"] diff --git a/distribution/docker/ubi-docker-build-context/build.gradle b/distribution/docker/ubi-docker-build-context/build.gradle index 56502412c0a4a..70ad4ab02542c 100644 --- a/distribution/docker/ubi-docker-build-context/build.gradle +++ b/distribution/docker/ubi-docker-build-context/build.gradle @@ -2,12 +2,26 @@ import org.elasticsearch.gradle.DockerBase apply plugin: 'base' +configurations { + transformLog4jJar +} + +dependencies { + transformLog4jJar project(path: ":distribution:docker:transform-log4j-config", configuration: 'default') +} + + tasks.register("buildUbiDockerBuildContext", Tar) { archiveExtension = 'tar.gz' compression = Compression.GZIP archiveClassifier = "docker-build-context" archiveBaseName = "elasticsearch-ubi8" + // Non-local builds don't need to specify an architecture. with dockerBuildContext(null, false, DockerBase.UBI, false) + + into('bin') { + from configurations.transformLog4jJar + } } tasks.named("assemble").configure { dependsOn("buildUbiDockerBuildContext") }