dockerfiles/manual/elasticsearch/buildx.sh

38 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# 定义日志文件
LOG_FILE="buildx.log"
# 确保版本文件最后有换行符
if [ -n "$(tail -c 1 versions)" ]; then
echo "" >> versions
fi
# 读取版本文件并遍历每一行
while IFS= read -r VERSION; do
# 跳过空行
[ -z "$VERSION" ] && continue
# 获取当前日期时间
TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
# 记录开始构建的日志
echo "[$TIMESTAMP] 开始构建并上传 quay.io/wandoubaba517/elasticsearch:${VERSION}-ik 镜像" >> "$LOG_FILE"
# 替换模板中的版本号并生成 Dockerfile
sed "s/{\$VERSION}/$VERSION/g" Dockerfile.template > "Dockerfile_${VERSION}-ik"
# 执行构建命令
if docker buildx build --platform linux/amd64,linux/arm64 --push -t "quay.io/wandoubaba517/elasticsearch:${VERSION}-ik" -f "Dockerfile_${VERSION}-ik" .; then
STATUS="success"
else
STATUS="failed"
fi
# 删除生成的 Dockerfile
rm "Dockerfile_${VERSION}-ik"
# 记录完成构建的日志
echo "[$TIMESTAMP] 完成构建并上传 quay.io/wandoubaba517/elasticsearch:${VERSION}-ik 镜像 $STATUS" >> "$LOG_FILE"
done < versions