diff --git a/images-aarch64 b/images-aarch64 new file mode 100644 index 00000000..85c8f99f --- /dev/null +++ b/images-aarch64 @@ -0,0 +1 @@ +streamline-emr:2.0=registry.gitlab.com/signalytic/client-external/streamline/streamline-emr/arm64:2.0 \ No newline at end of file diff --git a/images-x86_64 b/images-x86_64 new file mode 100644 index 00000000..700ea70f --- /dev/null +++ b/images-x86_64 @@ -0,0 +1 @@ +streamline-emr:2.0=registry.gitlab.com/signalytic/client-external/streamline/streamline-emr/amd64:2.0 \ No newline at end of file diff --git a/package.sh b/package.sh index 58c2e462..00dd8c3d 100755 --- a/package.sh +++ b/package.sh @@ -41,51 +41,70 @@ else VERSION_NAME="unknown" fi -OUTPUT_NAME="$PACKAGE_NAME-$VERSION_NAME-$(arch)" -OUTPUT_FILE="$OUTPUT_NAME.tar.bz2" -OUTPUT_PATH="$OUTPUT_DIR/$OUTPUT_FILE" - -# create a new temp directory to stage files -for i in {1..9999};do - STAGING_DIR="tmp-staging-$i" - if [ ! -d $STAGING_DIR ]; then - break +# 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 -done -if [ -d $STAGING_DIR ]; then - echo "Failed to generate temp staging dir" - exit 1 -fi + OUTPUT_NAME="$PACKAGE_NAME-$VERSION_NAME-${pkg_arch}" + OUTPUT_FILE="$OUTPUT_NAME.tar.bz2" + OUTPUT_PATH="$OUTPUT_DIR/$OUTPUT_FILE" -# add files -mkdir ${STAGING_DIR} -cp ${PROJECT_ROOT}/install.sh ${STAGING_DIR}/ -cp -a ${PROJECT_ROOT}/root ${STAGING_DIR}/ + # create a new temp directory to stage files + for i in {1..9999};do + STAGING_DIR="tmp-staging-$i" + if [ ! -d $STAGING_DIR ]; then + break + fi + done + if [ -d $STAGING_DIR ]; then + echo "Failed to generate temp staging dir" + exit 1 + fi -# add images -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 - i=$((i+1)) - name="image${i}.img" - echo "addding '$name' -> '$image'" - docker pull $image - docker save -o ${IMAGES_DIR}/$name $image -done + # add files + mkdir ${STAGING_DIR} + cp ${PROJECT_ROOT}/install.sh ${STAGING_DIR}/ + cp -a ${PROJECT_ROOT}/root ${STAGING_DIR}/ -# setup output directory and cleanup old files if necessary -mkdir -p $OUTPUT_DIR -rm -rf $OUTPUT_PATH + # add images + IMAGES_DIR=${STAGING_DIR}/images + mkdir -p ${IMAGES_DIR} + i=0 + # 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" + 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 -pushd $STAGING_DIR > /dev/null -tar -cjf $OUTPUT_PATH * -popd > /dev/null + # setup output directory and cleanup old files if necessary + mkdir -p $OUTPUT_DIR + rm -rf $OUTPUT_PATH -# cleanup staging files -rm -r $STAGING_DIR + pushd $STAGING_DIR > /dev/null + tar -cjf $OUTPUT_PATH * + popd > /dev/null -echo "output: $OUTPUT_PATH" + # cleanup staging files + rm -r $STAGING_DIR + + echo "output: $OUTPUT_PATH" +done popd > /dev/null diff --git a/root/var/signalytic/clientapps/streamline/streamline-emr/docker-compose.yml b/root/var/signalytic/clientapps/streamline/streamline-emr/docker-compose.yml index beced585..1ad963a5 100644 --- a/root/var/signalytic/clientapps/streamline/streamline-emr/docker-compose.yml +++ b/root/var/signalytic/clientapps/streamline/streamline-emr/docker-compose.yml @@ -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"