| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/bin/bash
- # Docker 镜像构建脚本
- # 使用方法: ./build.sh [选项]
- IMAGE_NAME="eh-downloader"
- TAG="latest"
- DOCKERFILE="Dockerfile"
- # 显示帮助信息
- show_help() {
- echo "Docker 镜像构建脚本"
- echo ""
- echo "使用方法: $0 [选项]"
- echo ""
- echo "选项:"
- echo " -n, --name NAME 镜像名称 (默认: $IMAGE_NAME)"
- echo " -t, --tag TAG 镜像标签 (默认: $TAG)"
- echo " -f, --file FILE Dockerfile 路径 (默认: $DOCKERFILE)"
- echo " --no-cache 构建时不使用缓存"
- echo " -h, --help 显示此帮助信息"
- echo ""
- echo "示例:"
- echo " $0 # 使用默认配置构建"
- echo " $0 -n myapp -t v1.0 # 指定名称和标签"
- echo " $0 --no-cache # 不使用缓存构建"
- }
- # 解析命令行参数
- while [[ $# -gt 0 ]]; do
- case $1 in
- -n|--name)
- IMAGE_NAME="$2"
- shift 2
- ;;
- -t|--tag)
- TAG="$2"
- shift 2
- ;;
- -f|--file)
- DOCKERFILE="$2"
- shift 2
- ;;
- --no-cache)
- NO_CACHE="--no-cache"
- shift
- ;;
- -h|--help)
- show_help
- exit 0
- ;;
- *)
- echo "❌ 未知选项: $1"
- show_help
- exit 1
- ;;
- esac
- done
- # 检查 Dockerfile 是否存在
- if [ ! -f "$DOCKERFILE" ]; then
- echo "❌ Dockerfile 不存在: $DOCKERFILE"
- exit 1
- fi
- echo "🚀 开始构建 Docker 镜像..."
- echo "📦 镜像: $IMAGE_NAME:$TAG"
- echo "📄 Dockerfile: $DOCKERFILE"
- echo "⏰ 开始时间: $(date)"
- # 执行构建命令
- docker build $NO_CACHE -t $IMAGE_NAME:$TAG -f $DOCKERFILE .
- # 检查构建结果
- if [ $? -eq 0 ]; then
- echo ""
- echo "✅ 镜像构建成功!"
- echo "📊 镜像信息:"
- docker images | grep $IMAGE_NAME
-
- echo ""
- echo "🎯 下一步操作:"
- echo " 1. 使用 docker-compose up 启动服务"
- echo " 2. 或者使用 docker run -p 8000:8000 -v ./data:/app/data $IMAGE_NAME:$TAG 运行容器"
- else
- echo "❌ 镜像构建失败!"
- exit 1
- fi
|