为前端服务添加构建时的缓存清除策略,通过引入CACHEBUST参数确保每次构建获取最新依赖 更新docker-compose.aliyun.yml添加pull_policy配置确保总是拉取最新镜像
55 lines
1.5 KiB
Bash
55 lines
1.5 KiB
Bash
#!/bin/bash
|
||
set -e
|
||
|
||
# 固定版本号为latest
|
||
VERSION="latest"
|
||
REGISTRY="crpi-amr0dt5e5pywqwaf.cn-hangzhou.personal.cr.aliyuncs.com"
|
||
NAMESPACE="testrrr"
|
||
USERNAME="2324802641zhengniannian@gmail.com"
|
||
SERVICES=("data-service" "emotion-service" "frontend" "quant-service" "recommend-service" "user-service")
|
||
|
||
# 登录阿里云Docker仓库
|
||
echo "登录阿里云Docker仓库..."
|
||
docker login --username=$USERNAME $REGISTRY
|
||
if [ $? -ne 0 ]; then
|
||
echo "登录失败,请检查用户名和密码"
|
||
exit 1
|
||
fi
|
||
|
||
# 构建并推送所有服务镜像
|
||
for service in "${SERVICES[@]}"; do
|
||
echo "\n==================== 处理 $service ===================="
|
||
SERVICE_DIR="services/$service"
|
||
IMAGE_NAME="$REGISTRY/$NAMESPACE/$service:$VERSION"
|
||
|
||
# 检查服务目录是否存在
|
||
if [ ! -d "$SERVICE_DIR" ]; then
|
||
echo "错误: 服务目录 $SERVICE_DIR 不存在"
|
||
exit 1
|
||
fi
|
||
|
||
# 构建Docker镜像
|
||
echo "正在构建镜像: $IMAGE_NAME"
|
||
if [ "$service" = "frontend" ]; then
|
||
docker build --build-arg CACHEBUST=$(date +%s) -t $IMAGE_NAME $SERVICE_DIR
|
||
else
|
||
docker build -t $IMAGE_NAME $SERVICE_DIR
|
||
fi
|
||
if [ $? -ne 0 ]; then
|
||
echo "镜像构建失败"
|
||
exit 1
|
||
fi
|
||
|
||
# 推送Docker镜像
|
||
echo "正在推送镜像: $IMAGE_NAME"
|
||
docker push $IMAGE_NAME
|
||
if [ $? -ne 0 ]; then
|
||
echo "镜像推送失败"
|
||
exit 1
|
||
fi
|
||
|
||
echo "$service 处理完成"
|
||
done
|
||
|
||
echo "\n所有服务镜像构建和推送成功完成!"
|
||
exit 0 |