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

zstan pushed a commit to branch ignite-3.1.0
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 2a86279ecdb11930168234978fe0818d748e153f
Author: Artem Egorov <[email protected]>
AuthorDate: Wed Oct 15 17:16:24 2025 +0300

    IGNITE-24408 Build and provide multiarch docker builds (#6778)
---
 RELEASE.md             | 24 ++++++++++++++++++++----
 packaging/build.gradle | 14 +++++++++++++-
 2 files changed, 33 insertions(+), 5 deletions(-)

diff --git a/RELEASE.md b/RELEASE.md
index d0c5bcbba93..406060623e4 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -2,6 +2,14 @@
 
 This document describes the current procedure for preparing an Ignite 3 
release.
 
+## Requirements
+
+1. **Docker 19.03+**
+   * Verify docker installation: `docker version`
+   * Verify docker buildx installation: `docker buildx version`
+2. **.NET SDK 8.0.407+**
+   * Verify .NET installation: `dotnet --version`
+
 ## Prerequisites
 
 1. Create a GPG key, upload it to a keyserver, and locate its ID. More details 
here: https://infra.apache.org/openpgp.html
@@ -68,17 +76,24 @@ For all the commands going forward:
    ```
    ./gradlew -PprepareRelease prepareRelease -Pplatforms.enable
    ```
-12. Copy all packages along with checksums and signatures to the development 
distribution directory:
+12. Create Docker Images:
+    ```
+    ./gradlew :packaging:docker -Ptarget_platform=linux/amd64 
-Pplatforms.enable
+    docker save apacheignite/ignite:VERSION -o 
packaging/build/release/ignite:VERSION-amd64.tar
+    ./gradlew :packaging:docker -Ptarget_platform=linux/arm64 
-Pplatforms.enable
+    docker save apacheignite/ignite:VERSION -o 
packaging/build/release/ignite:VERSION-arm64.tar
+    ```
+13. Copy all packages along with checksums and signatures to the development 
distribution directory:
    ```
    cp packaging/build/release/* {dist.dev}/{version}-rc{rc}
    ```
-13. Commit ZIP and DEB\RPM packages:
+14. Commit ZIP and DEB\RPM packages:
    ```
    cd {dist.dev}
    svn add {version}-rc{rc}
    svn commit -m “Apache Ignite {version} RC{rc}”
    ``` 
-14. Put the release on a vote on the developers mailing list.
+15. Put the release on a vote on the developers mailing list.
 
 ## Finalizing the Release
 
@@ -107,7 +122,8 @@ Perform the following actions ONLY after the vote is 
successful and closed.
    * .NET: `./gradlew :platforms:aggregateDotnetDocs`
    * C++: `./gradlew :platforms:doxygenCppClient`
    * Push to https://github.com/apache/ignite-website/tree/master/releases
-7. Publish Docker images: `./gradlew :packaging:docker -Pplatforms.enable` 
(TODO - see [IGNITE-24408](https://issues.apache.org/jira/browse/IGNITE-24408))
+7. Publish Docker images:
+   * `./gradlew :packaging:docker -Ptarget_platform=linux/amd64,linux/arm64 
-Pdocker_push -Pplatforms.enable`
 8. Publish NuGet packages:
    * Get API key from 
https://svn.apache.org/repos/private/pmc/ignite/credentials/nuget.org (PMC only)
    * `for i in *.nupkg; do dotnet nuget push $i -k API_KEY_HERE -s 
"https://nuget.org/";; done`
diff --git a/packaging/build.gradle b/packaging/build.gradle
index 6c171b7027b..28467323185 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -86,12 +86,24 @@ def replaceVars = tasks.register('replaceVars', Copy) {
     into "$buildDir/docker"
 }
 
-ext.docker_image_name = "apacheignite/ignite"
+ext.docker_image_name = 
"apacheignite/ignite:${project.projectVersion.toString()}"
 
 docker {
     name project.docker_image_name
     dockerfile file('docker/Dockerfile')
 
+    if (project.hasProperty('target_platform')) {
+        platform project.properties["target_platform"]
+        buildx true
+    }
+
+    if (project.hasProperty('docker_push')) {
+        load false
+        push true
+    } else {
+        load true
+    }
+
     copySpec.into 'dist', {
         into('') {
             fileMode 0755

Reply via email to