feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

82
build-and-push.sh Executable file
View File

@@ -0,0 +1,82 @@
#!/bin/bash
set -e # 遇到错误立即退出
# 配置变量
AWS_ACCOUNT_ID="177603749739"
AWS_REGION="us-west-2"
ECR_REGISTRY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"
IMAGE_NAME="goalfy/goalfymax-admin"
IMAGE_TAG="${1:-latest}" # 默认使用 latest可通过第一个参数指定版本
FULL_IMAGE_NAME="${ECR_REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
echo "=========================================="
echo "构建和推送 Docker 镜像到 AWS ECR"
echo "=========================================="
echo "镜像名称: ${FULL_IMAGE_NAME}"
echo "=========================================="
# 1. 登录到 AWS ECR
echo "步骤 1/4: 登录到 AWS ECR..."
aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ECR_REGISTRY}
if [ $? -ne 0 ]; then
echo "错误: ECR 登录失败,请检查 AWS 凭证配置"
exit 1
fi
echo "✓ ECR 登录成功"
# 2. 构建 Docker 镜像
echo ""
echo "步骤 2/4: 构建 Docker 镜像..."
docker build --platform linux/amd64 -t ${FULL_IMAGE_NAME} -f Dockerfile .
if [ $? -ne 0 ]; then
echo "错误: Docker 镜像构建失败"
exit 1
fi
echo "✓ 镜像构建成功"
# 3. 如果指定了版本标签,同时也打上 latest 标签
if [ "${IMAGE_TAG}" != "latest" ]; then
echo ""
echo "步骤 3/4: 打 latest 标签..."
LATEST_IMAGE_NAME="${ECR_REGISTRY}/${IMAGE_NAME}:latest"
docker tag ${FULL_IMAGE_NAME} ${LATEST_IMAGE_NAME}
echo "✓ latest 标签已创建"
else
echo ""
echo "步骤 3/4: 跳过(已经是 latest 标签)"
fi
# 4. 推送镜像到 ECR
echo ""
echo "步骤 4/4: 推送镜像到 ECR..."
docker push ${FULL_IMAGE_NAME}
if [ $? -ne 0 ]; then
echo "错误: 镜像推送失败"
exit 1
fi
# 如果创建了 latest 标签,也推送它
if [ "${IMAGE_TAG}" != "latest" ]; then
echo "推送 latest 标签..."
docker push ${LATEST_IMAGE_NAME}
fi
echo ""
echo "=========================================="
echo "✓ 完成!镜像已成功推送"
echo "=========================================="
echo "镜像地址: ${FULL_IMAGE_NAME}"
if [ "${IMAGE_TAG}" != "latest" ]; then
echo " ${LATEST_IMAGE_NAME}"
fi
echo "=========================================="
echo ""
echo "下一步: 更新 k8s/deployment.yaml 中的镜像地址为:"
echo " ${FULL_IMAGE_NAME}"