You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by pt...@apache.org on 2023/08/21 05:41:05 UTC

[ignite] branch master updated: IGNITE-20169 Add ARM64 Docker image (#10877)

This is an automated email from the ASF dual-hosted git repository.

ptupitsyn pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new f2add98edbc IGNITE-20169 Add ARM64 Docker image (#10877)
f2add98edbc is described below

commit f2add98edbc565e52b01585fe3b41e717cd1a223
Author: Pavel Tupitsyn <pt...@apache.org>
AuthorDate: Mon Aug 21 08:40:54 2023 +0300

    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 +++++++
 deliveries/docker/apache-ignite/arm64/Dockerfile | 46 ++++++++++++++++++++++++
 2 files changed, 58 insertions(+)

diff --git a/deliveries/docker/apache-ignite/README.txt b/deliveries/docker/apache-ignite/README.txt
index e30fe968c7f..21fe2ead943 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[:<version>]
 
    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:<version>-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 00000000000..d4828acfb2c
--- /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
+