- 更新Dockerfile为多阶段构建,提升安全性和构建效率 - 重构docker-compose.yml,添加健康检查和网络配置 - 新增Docker镜像构建和推送脚本 - 修复Maven打包配置,移除不必要的配置项 - 添加.dockerignore文件优化构建上下文 - 删除旧的deploy.sh脚本 - 新增JAR部署和回滚脚本 注意:此为开发中版本,请勿部署到生产环境
54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 构建 Docker 镜像脚本
|
|
|
|
set -e
|
|
|
|
# 颜色输出
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}=== 开始构建 PeiPei 后端 Docker 镜像 ===${NC}"
|
|
|
|
# 检查是否在正确的目录
|
|
if [ ! -f "docker/Dockerfile" ]; then
|
|
echo -e "${RED}错误: 请在项目根目录执行此脚本${NC}"
|
|
echo -e "${YELLOW}当前目录: $(pwd)${NC}"
|
|
echo -e "${YELLOW}期望目录应包含: docker/Dockerfile${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
# 获取 UTC+8 时间戳
|
|
TIMESTAMP=$(TZ='Asia/Shanghai' date +"%Y-%m-%d-%Hh-%Mm")
|
|
echo -e "${YELLOW}构建时间戳 (UTC+8): ${TIMESTAMP}${NC}"
|
|
|
|
# 镜像名称和标签
|
|
IMAGE_NAME="peipei-backend"
|
|
VERSION_TAG="${TIMESTAMP}"
|
|
LATEST_TAG="latest"
|
|
|
|
echo -e "${YELLOW}镜像名称: ${IMAGE_NAME}${NC}"
|
|
echo -e "${YELLOW}版本标签: ${VERSION_TAG}${NC}"
|
|
|
|
# 构建 Docker 镜像
|
|
echo -e "${GREEN}开始构建镜像...${NC}"
|
|
if docker build -f docker/Dockerfile \
|
|
-t "${IMAGE_NAME}:${VERSION_TAG}" \
|
|
-t "${IMAGE_NAME}:${LATEST_TAG}" \
|
|
.; then
|
|
|
|
echo -e "${GREEN}✅ Docker 镜像构建成功!${NC}"
|
|
echo -e "${GREEN}镜像标签:${NC}"
|
|
echo -e " - ${IMAGE_NAME}:${VERSION_TAG}"
|
|
echo -e " - ${IMAGE_NAME}:${LATEST_TAG}"
|
|
|
|
echo -e "\n${YELLOW}镜像信息:${NC}"
|
|
docker images | grep -E "^${IMAGE_NAME}\s" | head -2
|
|
|
|
echo -e "\n${GREEN}下一步: 运行 ./push-docker.sh 推送到私有仓库${NC}"
|
|
else
|
|
echo -e "${RED}❌ Docker 镜像构建失败!${NC}"
|
|
exit 1
|
|
fi
|