build separate x86_64/aarch64 packages and explicitly define images

This commit is contained in:
2024-03-05 15:12:55 -08:00
parent 7c528766b0
commit 3c3af11360
4 changed files with 60 additions and 39 deletions
+1
View File
@@ -0,0 +1 @@
streamline-emr:2.0=registry.gitlab.com/signalytic/client-external/streamline/streamline-emr/arm64:2.0
+1
View File
@@ -0,0 +1 @@
streamline-emr:2.0=registry.gitlab.com/signalytic/client-external/streamline/streamline-emr/amd64:2.0
+24 -5
View File
@@ -41,7 +41,18 @@ else
VERSION_NAME="unknown"
fi
OUTPUT_NAME="$PACKAGE_NAME-$VERSION_NAME-$(arch)"
# build for each relevant platform
for platform in "linux/amd64" "linux/arm64"; do
echo "preparing package for platform $platform"
if [ "$platform" == "linux/amd64" ];then
pkg_arch="x86_64"
elif [ "$platform" == "linux/arm64" ];then
pkg_arch="aarch64"
else
echo "unexpected platform '$platform'"
exit 1
fi
OUTPUT_NAME="$PACKAGE_NAME-$VERSION_NAME-${pkg_arch}"
OUTPUT_FILE="$OUTPUT_NAME.tar.bz2"
OUTPUT_PATH="$OUTPUT_DIR/$OUTPUT_FILE"
@@ -66,12 +77,19 @@ cp -a ${PROJECT_ROOT}/root ${STAGING_DIR}/
IMAGES_DIR=${STAGING_DIR}/images
mkdir -p ${IMAGES_DIR}
i=0
for image in $(find root/ -name docker-compose.yml | xargs grep 'image:.*' | awk '{print $2}');do
# read image list from file (e.g. 'images-aarch64')
# images are listed as SAVED_TAG=SOURCE_IMAGE
for image in $(cat ${PROJECT_ROOT}/images-${pkg_arch});do
i=$((i+1))
name="image${i}.img"
echo "addding '$name' -> '$image'"
docker pull $image
docker save -o ${IMAGES_DIR}/$name $image
path="${IMAGES_DIR}/${name}"
IFS=\= read -r dest source <<< "${image}"
echo "pulling image '${source}' (${platform})"
docker pull --platform ${platform} ${source}
echo "tagging image as '${dest}'"
docker tag ${source} ${dest}
echo "saving to '${path}'"
docker save -o ${path} $dest
done
# setup output directory and cleanup old files if necessary
@@ -86,6 +104,7 @@ popd > /dev/null
rm -r $STAGING_DIR
echo "output: $OUTPUT_PATH"
done
popd > /dev/null
@@ -1,7 +1,7 @@
version: '3.9'
services:
streamline-emr:
image: registry.gitlab.com/signalytic/client-external/streamline/streamline-emr:2.0
image: streamline-emr:2.0
container_name: ${CONTAINER_NAME:-streamline-emr}
volumes:
- "${DATA_DIR:-/var/signalytic/clientapps/streamline/streamline-emr/data}:/var/lib/mysql"