Support multi-architecture containers.
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 6 Jan 2020 13:39:33 +0000 (14:39 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 6 Jan 2020 13:39:33 +0000 (14:39 +0100)
dist/containers/argeo2-all [new file with mode: 0755]
dist/containers/argeo2-builder
dist/containers/argeo2-java
dist/containers/argeo2-lists [new file with mode: 0755]
dist/containers/argeo2-node
dist/containers/argeo2-tp
dist/containers/buildah-common
dist/containers/filtered/buildah-metadata

diff --git a/dist/containers/argeo2-all b/dist/containers/argeo2-all
new file mode 100755 (executable)
index 0000000..4ad00fa
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+./argeo2-java
+./argeo2-tp
+./argeo2-node
+./argeo2-builder
index 4bb95f0290d334c72fd4eabe585e7734c53af161..055522bffbfd61433e66f81160ee7ec7eb9906f7 100755 (executable)
@@ -1,12 +1,12 @@
 #!/bin/sh
 
 source "$(dirname "$0")/buildah-metadata"
-container=$(buildah from argeo/argeo2-java:openjdk-v$VERSION_JAVA)
+container=$(buildah from argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH)
 
 source "$(dirname "$0")/buildah-common"
 
 buildah config --label release="1" $container
-buildah config --label version="$VERSION" $container
+buildah config --label version="$VERSION_MAVEN" $container
 
 # Metadata
 buildah config --label name="argeo2-builder" $container
@@ -41,7 +41,7 @@ buildah config --workingdir /root/build/ $container
 # Perform a build of argeo-commons
 buildah copy $container ../.. /root/build
 buildah run $container -- mvn clean install
-buildah run $container -- mvn dependency:go-offline
+#buildah run $container -- mvn dependency:go-offline
 
 # Clean up build directories
 buildah run $container -- rm -rf /root/.m2/repository/org/argeo/commons
@@ -51,7 +51,8 @@ buildah run $container -- mkdir -p /root/build/
 # Configuration
 buildah config --entrypoint '["mvn","clean","install"]' $container
 
-buildah commit --rm --format docker $container argeo/argeo2-builder:maven-v$VERSION_MAVEN
-buildah tag argeo/argeo2-builder:maven-v$VERSION_MAVEN argeo/argeo2-builder:latest
-buildah push argeo/argeo2-builder:maven-v$VERSION_MAVEN docker://argeo/argeo2-builder:maven-v$VERSION_MAVEN
-buildah push argeo/argeo2-builder:maven-v$VERSION_MAVEN docker://argeo/argeo2-builder:latest
+buildah commit --rm --format docker $container argeo/argeo2-builder:maven-v$VERSION_MAVEN-$ARCH
+buildah tag argeo/argeo2-builder:maven-v$VERSION_MAVEN-$ARCH argeo/argeo2-builder:$ARCH
+
+buildah push argeo/argeo2-builder:maven-v$VERSION_MAVEN-$ARCH docker://argeo/argeo2-builder:maven-v$VERSION_MAVEN-$ARCH
+buildah push argeo/argeo2-builder:$ARCH docker://argeo/argeo2-builder:$ARCH
index af25a56b617a237403a67bd72cb7a21f0fe0a167..170872f36ff1c540d2575c15b3d143e08208eb7c 100755 (executable)
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 source "$(dirname "$0")/buildah-metadata"
+buildah pull ubi8/ubi-minimal
 container=$(buildah from ubi8/ubi-minimal)
 
 source "$(dirname "$0")/buildah-common"
@@ -21,6 +22,7 @@ buildah run $container -- microdnf clean all
 buildah config --entrypoint '["java"]' $container
 
 buildah commit --rm --format docker $container argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH
-buildah tag argeo/argeo2-java:openjdk-v$VERSION_JAVA argeo/argeo2-java:$ARCH
-buildah push argeo/argeo2-java:openjdk-v$VERSION_JAVA docker://argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH
-buildah push argeo/argeo2-java:openjdk-v$VERSION_JAVA docker://argeo/argeo2-java:$ARCH
+buildah tag argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH argeo/argeo2-java:$ARCH
+
+buildah push argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH docker://argeo/argeo2-java:openjdk-v$VERSION_JAVA-$ARCH
+buildah push argeo/argeo2-java:$ARCH docker://argeo/argeo2-java:$ARCH
diff --git a/dist/containers/argeo2-lists b/dist/containers/argeo2-lists
new file mode 100755 (executable)
index 0000000..361fb3f
--- /dev/null
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Multi-architecture manifests
+buildah manifest create argeo/argeo2-java:latest docker://argeo/argeo2-java:x86_64 docker://argeo/argeo2-java:aarch64
+buildah manifest push argeo/argeo2-java:latest docker://argeo/argeo2-java:latest
+
+buildah manifest create argeo/argeo2-tp:latest docker://argeo/argeo2-tp:x86_64 docker://argeo/argeo2-tp:aarch64
+buildah manifest push argeo/argeo2-tp:latest docker://argeo/argeo2-tp:latest
+
+buildah manifest create argeo/argeo2-node:latest docker://argeo/argeo2-node:x86_64 docker://argeo/argeo2-node:aarch64
+buildah manifest push argeo/argeo2-node:latest docker://argeo/argeo2-node:latest
+
+buildah manifest create argeo/argeo2-builder:latest docker://argeo/argeo2-builder:x86_64 docker://argeo/argeo2-builder:aarch64
+buildah manifest push argeo/argeo2-builder:latest docker://argeo/argeo2-builder:latest
+
index 839d3cdb5d4d975707697fc6a8507a475435ceeb..8578ab94a658fe5108547d73933d8cd37ec2a6ed 100755 (executable)
@@ -1,17 +1,16 @@
 #!/bin/sh
 
 source "$(dirname "$0")/buildah-metadata"
-container=$(buildah from argeo/argeo2-tp:$VERSION_ARGEO_TP)
+container=$(buildah from argeo/argeo2-tp:$VERSION_ARGEO_TP-$ARCH)
 
 # Override version
-VERSION=2.1.84
 #buildah copy $container argeo2-rpmfactory.repo /etc/yum.repos.d/
 #buildah copy $container /srv/rpmfactory/argeo-osgi-2/el7/ /srv/rpmfactory/argeo-osgi-2/el7/
 
 source "$(dirname "$0")/buildah-common"
 
 buildah config --label release="1" $container
-buildah config --label version="$VERSION" $container
+buildah config --label version="$VERSION_ARGEO_COMMONS" $container
 
 # Metadata
 buildah config --label name="argeo2-node" $container
@@ -28,7 +27,8 @@ buildah run $container -- microdnf clean all
 buildah config --entrypoint '["/usr/sbin/argeoctl","start"]' $container
 buildah config --port 8080 $container
 
-buildah commit --rm --format docker $container argeo/argeo2-node:$VERSION
-buildah tag argeo/argeo2-node:$VERSION argeo/argeo2-node:latest
-buildah push argeo/argeo2-node:$VERSION docker://argeo/argeo2-node:$VERSION
-buildah push argeo/argeo2-node:$VERSION docker://argeo/argeo2-node:latest
+buildah commit --rm --format docker $container argeo/argeo2-node:$VERSION_ARGEO_COMMONS-$ARCH
+buildah tag argeo/argeo2-node:$VERSION_ARGEO_COMMONS-$ARCH argeo/argeo2-node:$ARCH
+
+buildah push argeo/argeo2-node:$VERSION_ARGEO_COMMONS-$ARCH docker://argeo/argeo2-node:$VERSION_ARGEO_COMMONS-$ARCH
+buildah push argeo/argeo2-node:$ARCH docker://argeo/argeo2-node:$ARCH
index ecf60a0592e6d8bb89e904aaa5084c3973323db5..a033ab00ea465b8c4bb283719d93e8d6230df93f 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 source "$(dirname "$0")/buildah-metadata"
-container=$(buildah from argeo/argeo2-java:openjdk-v$VERSION_JAVA)
+container=$(buildah from argeo/argeo2-java:$ARCH)
 
 source "$(dirname "$0")/buildah-common"
 
@@ -24,7 +24,8 @@ buildah config --entrypoint '["java","-Dosgi.bundles=org.argeo.osgi.boot.jar@sta
 buildah config --workingdir /var/lib/argeo $container
 buildah config --volume /var/lib/argeo $container
 
-buildah commit --rm --format docker $container argeo/argeo2-tp:$VERSION_ARGEO_TP
-buildah tag argeo/argeo2-tp:$VERSION_ARGEO_TP argeo/argeo2-tp:latest
-buildah push argeo/argeo2-tp:$VERSION_ARGEO_TP docker://argeo/argeo2-tp:$VERSION_ARGEO_TP
-buildah push argeo/argeo2-tp:$VERSION_ARGEO_TP docker://argeo/argeo2-tp:latest
+buildah commit --rm --format docker $container argeo/argeo2-tp:$VERSION_ARGEO_TP-$ARCH
+buildah tag argeo/argeo2-tp:$VERSION_ARGEO_TP-$ARCH argeo/argeo2-tp:$ARCH
+
+buildah push argeo/argeo2-tp:$VERSION_ARGEO_TP-$ARCH docker://argeo/argeo2-tp:$VERSION_ARGEO_TP-$ARCH
+buildah push argeo/argeo2-tp:$ARCH docker://argeo/argeo2-tp:$ARCH
index ca344a35bdef3a765d849417e327fb61b1ede915..6e9002815ba95a6572381721140aaf3af9522252 100755 (executable)
@@ -1,10 +1,8 @@
 #!/bin/sh
 
-## Log-in to Red Hat registry first
+## Log-in to registries first
 # podman login registry.redhat.io
-
-ARCH=`arch`
-echo Building for architecture $ARCH
+# podman login docker.io
 
 # Metadata
 buildah config --label maintainer="Mathieu Baudier, mbaudier at argeo.org" $container
@@ -25,6 +23,3 @@ buildah config --label vcs-ref= $container
 buildah config --label vcs-type= $container
 buildah config --label summary= $container
 
-# To create a multi-arch manifest
-#buildah manifest create argeo/argeo2-java:latest docker://argeo/argeo2-java:x86_64 docker://argeo/argeo2-java:aarch64
-#buildah manifest push argeo/argeo2-java:latest docker://argeo/argeo2-java:latest
index fd437d928bad282317f07a734c3b5bbeaf7e157c..5c22840e01a3cd78bd759ddd4118447b4b33d25c 100644 (file)
@@ -1,5 +1,8 @@
-VERSION=${project.version}
+VERSION_ARGEO_COMMONS=2.1.84
 VERSION_ARGEO_TP=${version.argeo-tp}
 
 VERSION_MAVEN=3.5.4
 VERSION_JAVA=11.0.5
+
+ARCH=`arch`
+echo Building for architecture $ARCH