From f2add98edbc565e52b01585fe3b41e717cd1a223 Mon Sep 17 00:00:00 2001 From: Pavel Tupitsyn Date: Mon, 21 Aug 2023 08:40:54 +0300 Subject: [PATCH] IGNITE-20169 Add ARM64 Docker image (#10877) Add ARM64 Docker image (for Apple Silicon, AWS Graviton, Raspberry, etc). Ideally we could make a multi-arch image, but this will require base image change from Alpine to Ubuntu: there is no `eclipse-temurin` Java 8 image with ARM64 support. Also, we have a separate `s390x` image (published with a different tag), so we follow the same approach here. --- deliveries/docker/apache-ignite/README.txt | 12 +++++ .../docker/apache-ignite/arm64/Dockerfile | 46 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 deliveries/docker/apache-ignite/arm64/Dockerfile diff --git a/deliveries/docker/apache-ignite/README.txt b/deliveries/docker/apache-ignite/README.txt index e30fe968c7fde..21fe2ead94387 100644 --- a/deliveries/docker/apache-ignite/README.txt +++ b/deliveries/docker/apache-ignite/README.txt @@ -24,3 +24,15 @@ Build image docker build . -t apacheignite/ignite[:] Prepared image will be available issuing `docker images` command + +6) Build ARM64 docker image + +ARM64 image can be built on x64 hardware with `docker buildx`. + + - Install `docker buildx` plugin + + docker buildx install + + - Build and push ARM64 image (currently no way to push separately from build) + + docker buildx build . -f ./arm64/Dockerfile -t apacheignite/ignite:-arm64 -t apacheignite/ignite:latest-arm64 --push --platform linux/arm64 \ No newline at end of file diff --git a/deliveries/docker/apache-ignite/arm64/Dockerfile b/deliveries/docker/apache-ignite/arm64/Dockerfile new file mode 100644 index 0000000000000..d4828acfb2c08 --- /dev/null +++ b/deliveries/docker/apache-ignite/arm64/Dockerfile @@ -0,0 +1,46 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Start from Java 8 based on Ubuntu Focal Linux image (there is no Alpine Linux image with Java 8 on ARM64) +ARG JDK_VERSION=8 +FROM eclipse-temurin:${JDK_VERSION}-jre-focal + +# Settings +ENV IGNITE_HOME /opt/ignite/apache-ignite +WORKDIR /opt/ignite + +# Copy main binary archive +COPY apache-ignite* apache-ignite + +# Copy sh files and set permission +COPY run.sh $IGNITE_HOME/ + +# Grant permission to copy optional libs +RUN chmod 777 ${IGNITE_HOME}/libs + +# Grant permission to create work directory +RUN chmod 777 ${IGNITE_HOME} + +# Grant permission to execute entry point +RUN chmod 555 $IGNITE_HOME/run.sh + +# Entry point +CMD $IGNITE_HOME/run.sh + +# Container port exposure +EXPOSE 11211 47100 47500 49112 10800 8080 +