From 00fd75ceaab9d92afaef077a81e81b4f7562a02b Mon Sep 17 00:00:00 2001 From: vipg Date: Tue, 11 Nov 2025 14:53:21 +0800 Subject: [PATCH] add --- backend/user/src/build.sh | 58 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 backend/user/src/build.sh diff --git a/backend/user/src/build.sh b/backend/user/src/build.sh new file mode 100644 index 0000000..e2551a9 --- /dev/null +++ b/backend/user/src/build.sh @@ -0,0 +1,58 @@ +#!/bin/bash +set -e + +# 定义日志函数(带时间戳和级别) +log_info() { + echo "[$(date +'%Y-%m-%d %H:%M:%S')] [INFO] $1" +} + +log_warn() { + echo "[$(date +'%Y-%m-%d %H:%M:%S')] [WARN] $1" >&2 +} + +log_error() { + echo "[$(date +'%Y-%m-%d %H:%M:%S')] [ERROR] $1" >&2 +} + +# 定义镜像信息 +IMAGE_NAME="user-api" +IMAGE_TAG="1.0.0" +FULL_IMAGE="${IMAGE_NAME}:${IMAGE_TAG}" +COMPOSE_PROJECT_NAME="user_service" +DOCKER_COMPOSE_FILE="./docker-compose.yaml" + +log_info "===== 开始执行构建脚本 =====" + +# 步骤1:删除现有镜像 +log_info "尝试删除现有镜像: ${FULL_IMAGE}" +if sudo docker rmi -f "${FULL_IMAGE}" >/dev/null 2>&1; then + log_info "镜像 ${FULL_IMAGE} 删除成功" +else + log_warn "镜像 ${FULL_IMAGE} 不存在,跳过删除步骤" +fi + +# 步骤2:构建新镜像 +log_info "开始构建新镜像: ${FULL_IMAGE}(Dockerfile位于src目录)" +if sudo docker build -t "${FULL_IMAGE}" -f ./src/Dockerfile .; then + log_info "镜像 ${FULL_IMAGE} 构建成功" +else + log_error "镜像 ${FULL_IMAGE} 构建失败" + exit 1 +fi + +# 步骤3:停止docker-compose服务 +log_info "开始停止编排服务: ${COMPOSE_PROJECT_NAME}" +if [ ! -f "$DOCKER_COMPOSE_FILE" ]; then + log_error "未找到docker-compose文件: ${DOCKER_COMPOSE_FILE}" + exit 1 +fi + +log_info "执行 docker-compose down 命令" +if docker-compose -f "$DOCKER_COMPOSE_FILE" -p "$COMPOSE_PROJECT_NAME" down; then + log_info "编排服务 ${COMPOSE_PROJECT_NAME} 已成功停止" +else + log_error "编排服务 ${COMPOSE_PROJECT_NAME} 停止失败" + exit 1 +fi + +log_info "===== 构建脚本执行完成 =====" \ No newline at end of file