继续完善
This commit is contained in:
118
InfoGenie-backend/build_docker.sh
Executable file
118
InfoGenie-backend/build_docker.sh
Executable file
@@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
|
||||
# InfoGenie 后端 Docker 镜像构建脚本
|
||||
# Created by: 神奇万事通
|
||||
# Date: 2025-09-16
|
||||
|
||||
set -e
|
||||
|
||||
# 颜色输出
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 配置
|
||||
IMAGE_NAME="infogenie-backend"
|
||||
IMAGE_TAG="latest"
|
||||
DOCKERFILE_PATH="."
|
||||
|
||||
# 函数:打印信息
|
||||
print_info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# 检查Docker是否安装
|
||||
check_docker() {
|
||||
if ! command -v docker &> /dev/null; then
|
||||
print_error "Docker 未安装,请先安装 Docker"
|
||||
exit 1
|
||||
fi
|
||||
print_info "Docker 版本: $(docker --version)"
|
||||
}
|
||||
|
||||
# 检查Dockerfile是否存在
|
||||
check_dockerfile() {
|
||||
if [ ! -f "Dockerfile" ]; then
|
||||
print_error "Dockerfile 不存在"
|
||||
exit 1
|
||||
fi
|
||||
print_info "找到 Dockerfile"
|
||||
}
|
||||
|
||||
# 构建Docker镜像
|
||||
build_image() {
|
||||
print_info "开始构建 Docker 镜像: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
|
||||
# 构建镜像
|
||||
docker build \
|
||||
--no-cache \
|
||||
-t ${IMAGE_NAME}:${IMAGE_TAG} \
|
||||
-f ${DOCKERFILE_PATH}/Dockerfile \
|
||||
${DOCKERFILE_PATH}
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
print_info "Docker 镜像构建成功!"
|
||||
print_info "镜像信息:"
|
||||
docker images ${IMAGE_NAME}:${IMAGE_TAG}
|
||||
else
|
||||
print_error "Docker 镜像构建失败"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 显示使用说明
|
||||
show_usage() {
|
||||
echo ""
|
||||
print_info "构建完成! 使用方法:"
|
||||
echo ""
|
||||
echo "1. 运行容器 (需要MongoDB):"
|
||||
echo " docker run -d \\"
|
||||
echo " --name infogenie-backend \\"
|
||||
echo " -p 5002:5002 \\"
|
||||
echo " -e MONGO_URI=mongodb://host.docker.internal:27017/InfoGenie \\"
|
||||
echo " -e SECRET_KEY=your-secret-key \\"
|
||||
echo " -e MAIL_USERNAME=your-email@qq.com \\"
|
||||
echo " -e MAIL_PASSWORD=your-app-password \\"
|
||||
echo " ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
echo ""
|
||||
echo "2. 使用 Docker Compose (推荐):"
|
||||
echo " 创建 docker-compose.yml 文件并运行:"
|
||||
echo " docker-compose up -d"
|
||||
echo ""
|
||||
echo "3. 查看日志:"
|
||||
echo " docker logs infogenie-backend"
|
||||
echo ""
|
||||
echo "4. 停止容器:"
|
||||
echo " docker stop infogenie-backend"
|
||||
echo " docker rm infogenie-backend"
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
print_info "InfoGenie 后端 Docker 镜像构建脚本"
|
||||
print_info "=================================="
|
||||
|
||||
# 检查环境
|
||||
check_docker
|
||||
check_dockerfile
|
||||
|
||||
# 构建镜像
|
||||
build_image
|
||||
|
||||
# 显示使用说明
|
||||
show_usage
|
||||
|
||||
print_info "构建脚本执行完成!"
|
||||
}
|
||||
|
||||
# 执行主函数
|
||||
main "$@"
|
||||
Reference in New Issue
Block a user