You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by dz...@apache.org on 2021/09/17 08:53:43 UTC
[drill] 09/09: Make the build container base image name an ARG,
BUILD_BASE_IMAGE.
This is an automated email from the ASF dual-hosted git repository.
dzamo pushed a commit to branch 7999-docker-jdk
in repository https://gitbox.apache.org/repos/asf/drill.git
commit b061470962755519cfdd2c5681ccf65bc30d3e69
Author: James Turton <ja...@somecomputer.xyz>
AuthorDate: Fri Sep 17 10:34:31 2021 +0200
Make the build container base image name an ARG, BUILD_BASE_IMAGE.
---
Dockerfile | 25 +++++++++++++++++--------
hooks/build | 23 ++++++++++++++++++++---
2 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/Dockerfile b/Dockerfile
index f2966dd..4daf6cf 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -18,15 +18,21 @@
# This Dockerfile is used for automated builds in DockerHub. It adds
# project sources into the build image, builds Drill and copies built
-# binaries into the target image based on the image name in BASE_IMAGE
-# build arg which you should set when invoking docker build.
-# Example syntax: docker build --build-arg BASE_IMAGE="openjdk:8-jre"
+# binaries into the target image.
-ARG $BASE_IMAGE=openjdk:8-jre
+# Example usage:
+#
+# {docker|podman} build \
+# --build-arg BUILD_BASE_IMAGE=maven:3.8.2-openjdk-11 \
+# --build-arg BASE_IMAGE=openjdk:11-jre \
+# -t apache/drill-openjdk-11
+
+# Unless otherwise specified, the intermediate container image will be
+# based on the following default.
+ARG BUILD_BASE_IMAGE=maven:3.8.2-openjdk-8
# Uses intermediate image for building Drill to reduce target image size
-# Build using OpenJDK 8 to maintain compatibility with all OpenJDK >= 8
-FROM maven:3.8.2-openjdk-8 as build
+FROM $BUILD_BASE_IMAGE as build
WORKDIR /src
@@ -43,6 +49,10 @@ RUN VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --n
# Target image
+# Unless otherwise specified, the final container image will be based on
+# the following default.
+ARG BASE_IMAGE=openjdk:8-jre
+
# Set the BASE_IMAGE build arg when you invoke docker build.
FROM $BASE_IMAGE
@@ -54,5 +64,4 @@ COPY --from=build /opt/drill $DRILL_HOME
# Starts Drill in embedded mode and connects to Sqlline
ENTRYPOINT $DRILL_HOME/bin/drill-embedded
-
-
+
diff --git a/hooks/build b/hooks/build
index c73a76b..94e61db 100755
--- a/hooks/build
+++ b/hooks/build
@@ -15,7 +15,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-docker build --build-arg BASE_IMAGE=openjdk:8-jre -t apache/drill:openjdk-8 -t apache/drill:latest .
-docker build --build-arg BASE_IMAGE=openjdk:11-jre -t apache/drill:openjdk-11 .
-docker build --build-arg BASE_IMAGE=openjdk:14 -t apache/drill:openjdk-14 .
+docker build \
+ --build-arg BUILD_BASE_IMAGE=maven:3.8.2-openjdk-8 \
+ --build-arg BASE_IMAGE=openjdk:8-jre \
+ -t apache/drill:openjdk-8 \
+ -t apache/drill:latest \
+ .
+docker build \
+ --build-arg BUILD_BASE_IMAGE=maven:3.8.2-openjdk-11 \
+ --build-arg BASE_IMAGE=openjdk:11-jre \
+ -t apache/drill:openjdk-11 \
+ .
+
+# Maven images in Docker Hub jump from OpenJDK 11 to OpenJDK 16 so we build
+# with OpenJDK 11 for the OpenJDK 14-based container.
+
+docker build \
+ --build-arg BUILD_BASE_IMAGE=maven:3.8.2-openjdk-11 \
+ --build-arg BASE_IMAGE=openjdk:14 \
+ -t apache/drill:openjdk-14 \
+ .