You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
eh-fastapi/build.sh

88 lines
2.2 KiB

#!/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