aliyunpan/docker_webdav_build.sh

161 lines
4.3 KiB
Bash
Raw Normal View History

2022-01-03 09:55:55 +08:00
#!/bin/sh
# how to use
# for macOS & linux, run this command in shell
# ./docker_build.sh v0.0.1
name="aliyunpan"
version=$1
docker_image_name=tickstep/aliyunpan-webdav
if [ "$1" = "" ]; then
version=v1.0.0
fi
# build amd64 docker
echo "building amd64 docker image"
ARCH=amd64
ZIP_FILE_NAME=aliyunpan-$version-linux-$ARCH
# use alpine:3.15.0 as base image
# browse the url to view more information: https://hub.docker.com/layers/alpine/library/alpine/3.15.0/images/sha256-c74f1b1166784193ea6c8f9440263b9be6cae07dfe35e32a5df7a31358ac2060?context=explore
DOCKER_IMAGE_HASH=e7d88de73db3d3fd9b2d63aa7f447a10fd0220b7cbf39803c803f2af9ba256b3
unzip -d ./out ./out/$ZIP_FILE_NAME.zip
mv ./out/$ZIP_FILE_NAME ./out/binary_files
docker build \
2022-06-12 23:07:44 +08:00
-f ./docker/webdav/Dockerfile \
2022-01-03 09:55:55 +08:00
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
# build i386 docker
echo "building i386 docker image"
ARCH=386
ZIP_FILE_NAME=aliyunpan-$version-linux-$ARCH
DOCKER_IMAGE_HASH=2689e157117d2da668ad4699549e55eba1ceb79cb7862368b30919f0488213f4
unzip -d ./out ./out/$ZIP_FILE_NAME.zip
mv ./out/$ZIP_FILE_NAME ./out/binary_files
docker build \
2022-06-12 23:07:44 +08:00
-f ./docker/webdav/Dockerfile \
2022-01-03 09:55:55 +08:00
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
# build arm64 docker
echo "building arm64 docker image"
ARCH=arm64
ZIP_FILE_NAME=aliyunpan-$version-linux-$ARCH
DOCKER_IMAGE_HASH=c74f1b1166784193ea6c8f9440263b9be6cae07dfe35e32a5df7a31358ac2060
unzip -d ./out ./out/$ZIP_FILE_NAME.zip
mv ./out/$ZIP_FILE_NAME ./out/binary_files
docker build \
2022-06-12 23:07:44 +08:00
-f ./docker/webdav/Dockerfile \
2022-01-03 09:55:55 +08:00
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
# build armv7 docker
echo "building armv7 docker image"
ARCH=armv7
ZIP_FILE_NAME=aliyunpan-$version-linux-$ARCH
DOCKER_IMAGE_HASH=8483ecd016885d8dba70426fda133c30466f661bb041490d525658f1aac73822
unzip -d ./out ./out/$ZIP_FILE_NAME.zip
mv ./out/$ZIP_FILE_NAME ./out/binary_files
docker build \
2022-06-12 23:07:44 +08:00
-f ./docker/webdav/Dockerfile \
2022-01-03 09:55:55 +08:00
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
# build armv5 docker
2022-06-20 22:40:04 +08:00
#echo "building armv5 docker image"
#ARCH=armv5
#ZIP_FILE_NAME=aliyunpan-$version-linux-$ARCH
#DOCKER_IMAGE_HASH=e047bc2af17934d38c5a7fa9f46d443f1de3a7675546402592ef805cfa929f9d
#unzip -d ./out ./out/$ZIP_FILE_NAME.zip
#mv ./out/$ZIP_FILE_NAME ./out/binary_files
#
#docker build \
#-f ./docker/webdav/Dockerfile \
#-t $docker_image_name:$version-$ARCH \
#--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
#--no-cache .
#
#rm -rf out/binary_files
2022-01-03 09:55:55 +08:00
echo "push docker images"
docker push $docker_image_name:$version-amd64
docker push $docker_image_name:$version-386
docker push $docker_image_name:$version-arm64
docker push $docker_image_name:$version-armv7
2022-06-20 22:40:04 +08:00
#docker push $docker_image_name:$version-armv5
2022-01-03 09:55:55 +08:00
echo "create docker manifest"
docker manifest create $docker_image_name:$version \
$docker_image_name:$version-amd64 \
$docker_image_name:$version-386 \
$docker_image_name:$version-arm64 \
$docker_image_name:$version-armv7 \
--amend
2022-01-03 12:02:40 +08:00
2022-01-03 09:55:55 +08:00
echo "annotate manifest for amd64 image"
docker manifest annotate \
--arch=amd64 \
--os=linux \
$docker_image_name:$version \
$docker_image_name:$version-amd64
echo "annotate manifest for 386 image"
docker manifest annotate \
--arch=386 \
--os=linux \
$docker_image_name:$version \
$docker_image_name:$version-386
echo "annotate manifest for arm64 image"
docker manifest annotate \
--arch=arm64 \
--os=linux \
--variant=v8 \
$docker_image_name:$version \
$docker_image_name:$version-arm64
echo "annotate manifest for armv7 image"
docker manifest annotate \
--arch=arm \
--os=linux \
--variant=v7 \
$docker_image_name:$version \
$docker_image_name:$version-armv7
2022-06-20 22:40:04 +08:00
#echo "annotate manifest for armv5 image"
#docker manifest annotate \
#--arch=arm \
#--os=linux \
#--variant=v6 \
#$docker_image_name:$version \
#$docker_image_name:$version-armv5
2022-01-03 09:55:55 +08:00
echo "push manifest to docker hub"
docker manifest push $docker_image_name:$version
2022-06-18 12:33:42 +08:00
#echo "clear local docker image"
#docker rmi $docker_image_name:$version-amd64
#docker rmi $docker_image_name:$version-386
#docker rmi $docker_image_name:$version-arm64
#docker rmi $docker_image_name:$version-armv7
#docker rmi $docker_image_name:$version-armv5
2022-01-03 09:55:55 +08:00
echo "ALL DONE"