Remove UBI-based Docker images (#50747)

This commit removes the UBI-based Docker images as we are not using this
work for now.
This commit is contained in:
Jason Tedor 2020-01-08 16:51:41 -05:00
parent 3273c366b5
commit 8d9ec1c66d
No known key found for this signature in database
GPG Key ID: FA89F05560F16BC5
7 changed files with 39 additions and 59 deletions

View File

@ -22,31 +22,29 @@ dependencies {
restSpec project(':rest-api-spec') restSpec project(':rest-api-spec')
} }
ext.expansions = { oss, ubi, local -> ext.expansions = { oss, local ->
final String classifier = 'linux-x86_64' final String classifier = 'linux-x86_64'
final String elasticsearch = oss ? "elasticsearch-oss-${VersionProperties.elasticsearch}-${classifier}.tar.gz" : "elasticsearch-${VersionProperties.elasticsearch}-${classifier}.tar.gz" final String elasticsearch = oss ? "elasticsearch-oss-${VersionProperties.elasticsearch}-${classifier}.tar.gz" : "elasticsearch-${VersionProperties.elasticsearch}-${classifier}.tar.gz"
return [ return [
'base_image' : ubi ? 'registry.access.redhat.com/ubi7/ubi-minimal:7.7' : 'centos:7',
'build_date' : BuildParams.buildDate, 'build_date' : BuildParams.buildDate,
'elasticsearch' : elasticsearch, 'elasticsearch' : elasticsearch,
'git_revision' : BuildParams.gitRevision, 'git_revision' : BuildParams.gitRevision,
'license' : oss ? 'Apache-2.0' : 'Elastic-License', 'license' : oss ? 'Apache-2.0' : 'Elastic-License',
'package_manager' : ubi ? 'microdnf' : 'yum',
'source_elasticsearch': local ? "COPY $elasticsearch /opt/" : "RUN cd /opt && curl --retry 8 -s -L -O https://artifacts.elastic.co/downloads/elasticsearch/${elasticsearch} && cd -", 'source_elasticsearch': local ? "COPY $elasticsearch /opt/" : "RUN cd /opt && curl --retry 8 -s -L -O https://artifacts.elastic.co/downloads/elasticsearch/${elasticsearch} && cd -",
'version' : VersionProperties.elasticsearch 'version' : VersionProperties.elasticsearch
] ]
} }
private static String buildPath(final boolean oss, final boolean ubi) { private static String buildPath(final boolean oss) {
return "build/${oss ? 'oss-' : ''}${ubi ? 'ubi-' : ''}docker" return "build/${oss ? 'oss-' : ''}docker"
} }
private static String taskName(final String prefix, final boolean oss, final boolean ubi, final String suffix) { private static String taskName(final String prefix, final boolean oss, final String suffix) {
return "${prefix}${oss ? 'Oss' : ''}${ubi ? 'Ubi' : ''}${suffix}" return "${prefix}${oss ? 'Oss' : ''}${suffix}"
} }
project.ext { project.ext {
dockerBuildContext = { boolean oss, boolean ubi, boolean local -> dockerBuildContext = { boolean oss, boolean local ->
copySpec { copySpec {
into('bin') { into('bin') {
from project.projectDir.toPath().resolve("src/docker/bin") from project.projectDir.toPath().resolve("src/docker/bin")
@ -64,20 +62,20 @@ project.ext {
} }
from(project.projectDir.toPath().resolve("src/docker/Dockerfile")) { from(project.projectDir.toPath().resolve("src/docker/Dockerfile")) {
expand(expansions(oss, ubi, local)) expand(expansions(oss, local))
} }
} }
} }
} }
void addCopyDockerContextTask(final boolean oss, final boolean ubi) { void addCopyDockerContextTask(final boolean oss) {
task(taskName("copy", oss, ubi, "DockerContext"), type: Sync) { task(taskName("copy", oss, "DockerContext"), type: Sync) {
expansions(oss, ubi, true).findAll { it.key != 'build_date' }.each { k, v -> expansions(oss, true).findAll { it.key != 'build_date' }.each { k, v ->
inputs.property(k, { v.toString() }) inputs.property(k, { v.toString() })
} }
into buildPath(oss, ubi) into buildPath(oss)
with dockerBuildContext(oss, ubi, true) with dockerBuildContext(oss, true)
if (oss) { if (oss) {
from configurations.ossDockerSource from configurations.ossDockerSource
@ -149,25 +147,25 @@ task integTest(type: Test) {
check.dependsOn integTest check.dependsOn integTest
void addBuildDockerImage(final boolean oss, final boolean ubi) { void addBuildDockerImage(final boolean oss) {
final Task buildDockerImageTask = task(taskName("build", oss, ubi, "DockerImage"), type: LoggedExec) { final Task buildDockerImageTask = task(taskName("build", oss, "DockerImage"), type: LoggedExec) {
inputs.files(tasks.named(taskName("copy", oss, ubi, "DockerContext"))) inputs.files(tasks.named(taskName("copy", oss, "DockerContext")))
List<String> tags List<String> tags
if (oss) { if (oss) {
tags = [ tags = [
"docker.elastic.co/elasticsearch/elasticsearch-oss${ubi ? '-ubi7' : ''}:${VersionProperties.elasticsearch}", "docker.elastic.co/elasticsearch/elasticsearch-oss:${VersionProperties.elasticsearch}",
"elasticsearch-oss${ubi ? '-ubi7' : ''}:test" "elasticsearch-oss:test"
] ]
} else { } else {
tags = [ tags = [
"elasticsearch${ubi ? '-ubi7' : ''}:${VersionProperties.elasticsearch}", "elasticsearch:${VersionProperties.elasticsearch}",
"docker.elastic.co/elasticsearch/elasticsearch${ubi ? '-ubi7' : ''}:${VersionProperties.elasticsearch}", "docker.elastic.co/elasticsearch/elasticsearch:${VersionProperties.elasticsearch}",
"docker.elastic.co/elasticsearch/elasticsearch${ubi ? '-ubi7' : ''}-full:${VersionProperties.elasticsearch}", "docker.elastic.co/elasticsearch/elasticsearch-full:${VersionProperties.elasticsearch}",
"elasticsearch${ubi ? '-ubi7' : ''}:test", "elasticsearch:test",
] ]
} }
executable 'docker' executable 'docker'
final List<String> dockerArgs = ['build', buildPath(oss, ubi), '--pull', '--no-cache'] final List<String> dockerArgs = ['build', buildPath(oss), '--pull', '--no-cache']
for (final String tag : tags) { for (final String tag : tags) {
dockerArgs.add('--tag') dockerArgs.add('--tag')
dockerArgs.add(tag) dockerArgs.add(tag)
@ -184,10 +182,8 @@ void addBuildDockerImage(final boolean oss, final boolean ubi) {
} }
for (final boolean oss : [false, true]) { for (final boolean oss : [false, true]) {
for (final boolean ubi : [false, true]) { addCopyDockerContextTask(oss)
addCopyDockerContextTask(oss, ubi) addBuildDockerImage(oss)
addBuildDockerImage(oss, ubi)
}
} }
// We build the images used in compose locally, but the pull command insists on using a repository // We build the images used in compose locally, but the pull command insists on using a repository
@ -206,11 +202,10 @@ subprojects { Project subProject ->
apply plugin: 'distribution' apply plugin: 'distribution'
final boolean oss = subProject.name.contains('oss-') final boolean oss = subProject.name.contains('oss-')
final boolean ubi = subProject.name.contains('ubi-')
def exportTaskName = taskName("export", oss, ubi, "DockerImage") def exportTaskName = taskName("export", oss, "DockerImage")
def buildTaskName = taskName("build", oss, ubi, "DockerImage") def buildTaskName = taskName("build", oss, "DockerImage")
def tarFile = "${parent.projectDir}/build/elasticsearch${oss ? '-oss' : ''}${ubi ? '-ubi7' : ''}_test.${VersionProperties.elasticsearch}.docker.tar" def tarFile = "${parent.projectDir}/build/elasticsearch${oss ? '-oss' : ''}_test.${VersionProperties.elasticsearch}.docker.tar"
final Task exportDockerImageTask = task(exportTaskName, type: LoggedExec) { final Task exportDockerImageTask = task(exportTaskName, type: LoggedExec) {
executable 'docker' executable 'docker'
@ -218,14 +213,14 @@ subprojects { Project subProject ->
args "save", args "save",
"-o", "-o",
tarFile, tarFile,
"elasticsearch${oss ? '-oss' : ''}${ubi ? '-ubi7' : ''}:test" "elasticsearch${oss ? '-oss' : ''}:test"
} }
exportDockerImageTask.dependsOn(parent.tasks.getByName(buildTaskName)) exportDockerImageTask.dependsOn(parent.tasks.getByName(buildTaskName))
artifacts.add('default', file(tarFile)) { artifacts.add('default', file(tarFile)) {
type 'tar' type 'tar'
name "elasticsearch${oss ? '-oss' : ''}${ubi ? '-ubi7' : ''}" name "elasticsearch${oss ? '-oss' : ''}"
builtBy exportTaskName builtBy exportTaskName
} }

View File

@ -5,7 +5,7 @@ task buildDockerBuildContext(type: Tar) {
compression = Compression.GZIP compression = Compression.GZIP
archiveClassifier = "docker-build-context" archiveClassifier = "docker-build-context"
archiveBaseName = "elasticsearch" archiveBaseName = "elasticsearch"
with dockerBuildContext(false, false, false) with dockerBuildContext(false, false)
} }
assemble.dependsOn buildDockerBuildContext assemble.dependsOn buildDockerBuildContext

View File

@ -5,7 +5,7 @@ task buildOssDockerBuildContext(type: Tar) {
compression = Compression.GZIP compression = Compression.GZIP
archiveClassifier = "docker-build-context" archiveClassifier = "docker-build-context"
archiveBaseName = "elasticsearch-oss" archiveBaseName = "elasticsearch-oss"
with dockerBuildContext(true, false, false) with dockerBuildContext(true, false)
} }
assemble.dependsOn buildOssDockerBuildContext assemble.dependsOn buildOssDockerBuildContext

View File

@ -11,11 +11,11 @@
# Set gid=0 and make group perms==owner perms # Set gid=0 and make group perms==owner perms
################################################################################ ################################################################################
FROM ${base_image} AS builder FROM centos:7 AS builder
RUN for iter in {1..10}; do ${package_manager} update --setopt=tsflags=nodocs -y && \ RUN for iter in {1..10}; do yum update --setopt=tsflags=nodocs -y && \
${package_manager} install --setopt=tsflags=nodocs -y gzip shadow-utils tar && \ yum install --setopt=tsflags=nodocs -y gzip shadow-utils tar && \
${package_manager} clean all && exit_code=0 && break || exit_code=\$? && echo "${package_manager} error: retry \$iter in 10s" && sleep 10; done; \ yum clean all && exit_code=0 && break || exit_code=\$? && echo "yum error: retry \$iter in 10s" && sleep 10; done; \
(exit \$exit_code) (exit \$exit_code)
ENV PATH /usr/share/elasticsearch/bin:\$PATH ENV PATH /usr/share/elasticsearch/bin:\$PATH
@ -41,13 +41,13 @@ RUN chmod 0660 config/elasticsearch.yml config/log4j2.properties
# Add entrypoint # Add entrypoint
################################################################################ ################################################################################
FROM ${base_image} FROM centos:7
ENV ELASTIC_CONTAINER true ENV ELASTIC_CONTAINER true
RUN for iter in {1..10}; do ${package_manager} update --setopt=tsflags=nodocs -y && \ RUN for iter in {1..10}; do yum update --setopt=tsflags=nodocs -y && \
${package_manager} install --setopt=tsflags=nodocs -y nc shadow-utils zip unzip && \ yum install --setopt=tsflags=nodocs -y nc shadow-utils zip unzip && \
${package_manager} clean all && exit_code=0 && break || exit_code=\$? && echo "${package_manager} error: retry \$iter in 10s" && sleep 10; done; \ yum clean all && exit_code=0 && break || exit_code=\$? && echo "yum error: retry \$iter in 10s" && sleep 10; done; \
(exit \$exit_code) (exit \$exit_code)
RUN groupadd -g 1000 elasticsearch && \ RUN groupadd -g 1000 elasticsearch && \

View File

@ -1,11 +0,0 @@
apply plugin: 'base'
task buildUbiDockerBuildContext(type: Tar) {
extension = 'tar.gz'
compression = Compression.GZIP
archiveClassifier = "docker-build-context"
archiveBaseName = "elasticsearch-ubi7"
with dockerBuildContext(false, true, false)
}
assemble.dependsOn buildUbiDockerBuildContext

View File

@ -1,2 +0,0 @@
// This file is intentionally blank. All configuration of the
// export is done in the parent project.

View File

@ -36,8 +36,6 @@ List projects = [
'distribution:docker:docker-export', 'distribution:docker:docker-export',
'distribution:docker:oss-docker-build-context', 'distribution:docker:oss-docker-build-context',
'distribution:docker:oss-docker-export', 'distribution:docker:oss-docker-export',
'distribution:docker:ubi-docker-build-context',
'distribution:docker:ubi-docker-export',
'distribution:packages:oss-deb', 'distribution:packages:oss-deb',
'distribution:packages:deb', 'distribution:packages:deb',
'distribution:packages:oss-no-jdk-deb', 'distribution:packages:oss-no-jdk-deb',