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" VERSION_NAME="unknown"
fi 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_FILE="$OUTPUT_NAME.tar.bz2"
OUTPUT_PATH="$OUTPUT_DIR/$OUTPUT_FILE" OUTPUT_PATH="$OUTPUT_DIR/$OUTPUT_FILE"
@@ -66,12 +77,19 @@ cp -a ${PROJECT_ROOT}/root ${STAGING_DIR}/
IMAGES_DIR=${STAGING_DIR}/images IMAGES_DIR=${STAGING_DIR}/images
mkdir -p ${IMAGES_DIR} mkdir -p ${IMAGES_DIR}
i=0 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)) i=$((i+1))
name="image${i}.img" name="image${i}.img"
echo "addding '$name' -> '$image'" path="${IMAGES_DIR}/${name}"
docker pull $image IFS=\= read -r dest source <<< "${image}"
docker save -o ${IMAGES_DIR}/$name $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 done
# setup output directory and cleanup old files if necessary # setup output directory and cleanup old files if necessary
@@ -86,6 +104,7 @@ popd > /dev/null
rm -r $STAGING_DIR rm -r $STAGING_DIR
echo "output: $OUTPUT_PATH" echo "output: $OUTPUT_PATH"
done
popd > /dev/null popd > /dev/null
@@ -1,7 +1,7 @@
version: '3.9' version: '3.9'
services: services:
streamline-emr: 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} container_name: ${CONTAINER_NAME:-streamline-emr}
volumes: volumes:
- "${DATA_DIR:-/var/signalytic/clientapps/streamline/streamline-emr/data}:/var/lib/mysql" - "${DATA_DIR:-/var/signalytic/clientapps/streamline/streamline-emr/data}:/var/lib/mysql"