aliyunpan/docker_build.sh

162 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 \
-f ./docker/Dockerfile \
-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 \
-f ./docker/Dockerfile \
-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 \
-f ./docker/Dockerfile \
-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 \
-f ./docker/Dockerfile \
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
# build armv5 docker
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/Dockerfile \
-t $docker_image_name:$version-$ARCH \
--build-arg DOCKER_IMAGE_HASH=$DOCKER_IMAGE_HASH \
--no-cache .
rm -rf out/binary_files
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
docker push $docker_image_name:$version-armv5
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 \
$docker_image_name:$version-armv5 \
--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
echo "annotate manifest for armv5 image"
docker manifest annotate \
--arch=arm \
--os=linux \
--variant=v6 \
$docker_image_name:$version \
$docker_image_name:$version-armv5
echo "push manifest to docker hub"
docker manifest push $docker_image_name:$version
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
echo "ALL DONE"