This commit is contained in:
2025-11-01 17:37:42 +08:00
parent bd0fc6a284
commit d21ff35d17
9 changed files with 185 additions and 625 deletions

View File

@@ -16,8 +16,7 @@ NC='\033[0m' # No Color
PROJECT_NAME="digital-archive"
VERSION="latest"
DEFAULT_DEPLOY_DIR="/root/server/archive"
DOCKERFILE="Dockerfile.stable"
FAST_BUILD=false
DOCKERFILE="Dockerfile"
VERBOSE=false
# 显示横幅
@@ -39,7 +38,6 @@ show_help() {
echo ""
echo -e "${BLUE}命令:${NC}"
echo " build 构建Docker镜像"
echo " build --fast 快速构建镜像(跳过Tesseract)"
echo " deploy 部署应用到指定目录"
echo " check 检查环境配置"
echo " start 启动服务"
@@ -60,8 +58,7 @@ show_help() {
echo " 部署目录 目标部署目录 (默认: ${DEFAULT_DEPLOY_DIR})"
echo ""
echo -e "${YELLOW}示例:${NC}"
echo " $0 build # 完整构建镜像"
echo " $0 build -f # 快速构建镜像(跳过Tesseract)"
echo " $0 build # 构建镜像"
echo " $0 deploy /opt/myapp # 部署到指定目录"
echo " $0 check # 检查环境"
echo " $0 start # 启动服务"
@@ -127,17 +124,6 @@ build_image() {
# 检查必需文件
check_scripts
# 选择构建类型
if [ "$FAST_BUILD" = true ]; then
DOCKERFILE="Dockerfile.fast"
VERSION="fast"
log_info "使用快速构建模式 (跳过Tesseract预计3-5分钟)"
else
DOCKERFILE="Dockerfile.stable"
VERSION="stable"
log_info "使用完整构建模式 (包含所有功能预计10-15分钟)"
fi
# 构建镜像
docker build -f ${DOCKERFILE} -t ${PROJECT_NAME}:${VERSION} .
@@ -197,43 +183,12 @@ deploy_app() {
log_info "部署应用到: $deploy_dir"
# 自动检测可用的镜像版本
local fast_image=$(docker images "${PROJECT_NAME}:fast" --format "{{.Repository}}:{{.Tag}}" | head -1)
local stable_image=$(docker images "${PROJECT_NAME}:stable" --format "{{.Repository}}:{{.Tag}}" | head -1)
if [ "$FAST_BUILD" = true ] && [ -n "$fast_image" ]; then
VERSION="fast"
log_info "使用快速构建版本: ${PROJECT_NAME}:fast"
elif [ -n "$stable_image" ]; then
VERSION="stable"
log_info "使用完整构建版本: ${PROJECT_NAME}:stable"
elif [ -n "$fast_image" ]; then
VERSION="fast"
log_info "找到快速版本,使用: ${PROJECT_NAME}:fast"
else
log_error "未找到任何可用的镜像"
log_error "请先构建镜像: $0 build"
# 检查镜像
if ! docker images | grep -q "${PROJECT_NAME}:${VERSION}"; then
log_error "镜像 ${PROJECT_NAME}:${VERSION} 不存在,请先构建: $0 build"
exit 1
fi
# 检查镜像 - 更可靠的检测方式
local image_exists=$(docker images "${PROJECT_NAME}:${VERSION}" --format "{{.Repository}}:{{.Tag}}" | head -1)
if [ -z "$image_exists" ]; then
log_error "镜像 ${PROJECT_NAME}:${VERSION} 不存在"
log_error "请先构建镜像:"
if [ "$VERSION" = "fast" ]; then
log_error " $0 build -f"
else
log_error " $0 build"
fi
echo
log_info "可用的镜像列表:"
docker images "${PROJECT_NAME}*" --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" 2>/dev/null || echo " 无可用镜像"
exit 1
else
log_success "找到镜像: $image_exists"
fi
# 创建部署目录
mkdir -p "$deploy_dir"/{data/{upload,temp,unzip,images,reports,elasticsearch},logs,nginx}
@@ -580,10 +535,6 @@ main() {
VERBOSE=true
shift
;;
-f|--fast)
FAST_BUILD=true
shift
;;
--force)
FORCE=true
shift