owl/.container/check_docker.sh
2025-03-09 03:03:46 +08:00

92 lines
3.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 检测操作系统类型
OS_TYPE=$(uname -s)
echo "检测到操作系统: $OS_TYPE"
# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
echo "错误: Docker未安装"
if [[ "$OS_TYPE" == "Darwin" ]]; then
echo "在macOS上安装Docker的方法:"
echo "1. 访问 https://docs.docker.com/desktop/install/mac-install/ 下载Docker Desktop"
echo "2. 安装并启动Docker Desktop"
elif [[ "$OS_TYPE" == "Linux" ]]; then
echo "在Linux上安装Docker的方法:"
echo "1. 运行以下命令:"
echo " sudo apt-get update"
echo " sudo apt-get install docker.io docker-compose"
echo "2. 启动Docker服务:"
echo " sudo systemctl start docker"
echo " sudo systemctl enable docker"
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
echo "在Windows上安装Docker的方法:"
echo "1. 访问 https://docs.docker.com/desktop/install/windows-install/ 下载Docker Desktop"
echo "2. 安装并启动Docker Desktop"
fi
exit 1
fi
echo "Docker已安装"
# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
echo "错误: Docker Compose未安装"
if [[ "$OS_TYPE" == "Darwin" ]]; then
echo "Docker Desktop for Mac已包含Docker Compose"
elif [[ "$OS_TYPE" == "Linux" ]]; then
echo "在Linux上安装Docker Compose的方法:"
echo "1. 运行以下命令:"
echo " sudo apt-get install docker-compose"
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
echo "Docker Desktop for Windows已包含Docker Compose"
fi
exit 1
fi
echo "Docker Compose已安装"
# 检查Docker是否正在运行
if ! docker info &> /dev/null; then
echo "错误: Docker未运行"
if [[ "$OS_TYPE" == "Darwin" ]]; then
echo "请启动Docker Desktop应用程序"
elif [[ "$OS_TYPE" == "Linux" ]]; then
echo "请运行以下命令启动Docker服务:"
echo "sudo systemctl start docker"
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
echo "请启动Docker Desktop应用程序"
fi
exit 1
fi
echo "Docker正在运行"
# 检查是否有足够的磁盘空间
FREE_SPACE=$(df -h . | awk 'NR==2 {print $4}')
echo "可用磁盘空间: $FREE_SPACE"
# 检查是否有.env文件
if [ ! -f "owl/.env" ]; then
echo "警告: 未找到owl/.env文件"
echo "请运行以下命令创建环境变量文件:"
echo "cp owl/.env_template owl/.env"
echo "然后编辑owl/.env文件填写必要的API密钥"
else
echo "环境变量文件已存在"
fi
echo "所有检查完成您的系统已准备好构建和运行OWL项目的Docker容器"
echo "请运行以下命令构建Docker镜像:"
if [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
echo "build_docker.bat"
else
echo "./build_docker.sh"
fi