mirror of
https://github.com/camel-ai/owl.git
synced 2026-03-22 05:57:17 +08:00
compatibility docker-compose and docker compose
This commit is contained in:
@@ -65,16 +65,6 @@ if [ ! -f "$COMPOSE_FILE" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 检查Docker Compose命令
|
|
||||||
if command -v docker-compose &> /dev/null; then
|
|
||||||
COMPOSE_CMD="docker-compose"
|
|
||||||
elif docker compose version &> /dev/null; then
|
|
||||||
COMPOSE_CMD="docker compose"
|
|
||||||
else
|
|
||||||
echo "错误: 未找到Docker Compose命令"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 设置Docker BuildKit环境变量
|
# 设置Docker BuildKit环境变量
|
||||||
export DOCKER_BUILDKIT=1
|
export DOCKER_BUILDKIT=1
|
||||||
export COMPOSE_DOCKER_CLI_BUILD=1
|
export COMPOSE_DOCKER_CLI_BUILD=1
|
||||||
@@ -94,45 +84,66 @@ mkdir -p "$CACHE_DIR"
|
|||||||
BUILD_TIME=$(date +"%Y%m%d_%H%M%S")
|
BUILD_TIME=$(date +"%Y%m%d_%H%M%S")
|
||||||
BUILD_ARGS="$BUILD_ARGS --build-arg BUILD_TIME=$BUILD_TIME"
|
BUILD_ARGS="$BUILD_ARGS --build-arg BUILD_TIME=$BUILD_TIME"
|
||||||
|
|
||||||
|
# 获取脚本所在目录
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
# 获取项目根目录(脚本所在目录的父目录)
|
||||||
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
||||||
|
|
||||||
|
echo "脚本目录: $SCRIPT_DIR"
|
||||||
|
echo "项目根目录: $PROJECT_ROOT"
|
||||||
|
|
||||||
|
# 切换到项目根目录
|
||||||
|
cd "$PROJECT_ROOT"
|
||||||
|
|
||||||
|
# 检查Docker Compose命令
|
||||||
|
if command -v docker-compose &> /dev/null; then
|
||||||
|
COMPOSE_CMD="docker-compose"
|
||||||
|
echo "使用 docker-compose 命令"
|
||||||
|
elif docker compose version &> /dev/null; then
|
||||||
|
COMPOSE_CMD="docker compose"
|
||||||
|
echo "使用 docker compose 命令"
|
||||||
|
else
|
||||||
|
echo "错误: 未找到Docker Compose命令"
|
||||||
|
echo "请安装Docker Compose: https://docs.docker.com/compose/install/"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 检测CPU核心数,用于并行构建
|
# 检测CPU核心数,用于并行构建
|
||||||
CPU_CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
|
CPU_CORES=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
|
||||||
if [ $CPU_CORES -gt 2 ]; then
|
if [ $CPU_CORES -gt 2 ]; then
|
||||||
PARALLEL_FLAG="--parallel"
|
PARALLEL_FLAG="--parallel"
|
||||||
echo "检测到$CPU_CORES个CPU核心,启用并行构建..."
|
echo "检测到${CPU_CORES}个CPU核心,启用并行构建..."
|
||||||
else
|
else
|
||||||
PARALLEL_FLAG=""
|
PARALLEL_FLAG=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 构建Docker镜像
|
|
||||||
echo "开始构建Docker镜像..."
|
|
||||||
|
|
||||||
# 构建命令基础部分
|
# 构建命令基础部分
|
||||||
BUILD_CMD="$COMPOSE_CMD build $PARALLEL_FLAG $BUILD_ARGS"
|
BUILD_CMD="$COMPOSE_CMD -f \"$SCRIPT_DIR/docker-compose.yml\" build $PARALLEL_FLAG --build-arg BUILDKIT_INLINE_CACHE=1"
|
||||||
|
|
||||||
# 添加重新构建选项
|
# 根据操作系统类型执行不同的命令
|
||||||
if [ $REBUILD -eq 1 ]; then
|
if [[ "$OS_TYPE" == "Darwin" ]]; then
|
||||||
BUILD_CMD="$BUILD_CMD --no-cache"
|
# macOS
|
||||||
echo "强制重新构建镜像..."
|
echo "在macOS上构建Docker镜像..."
|
||||||
fi
|
eval $BUILD_CMD
|
||||||
|
elif [[ "$OS_TYPE" == "Linux" ]]; then
|
||||||
# 添加服务名称(如果指定)
|
# Linux
|
||||||
if [ ! -z "$SERVICE" ]; then
|
echo "在Linux上构建Docker镜像..."
|
||||||
BUILD_CMD="$BUILD_CMD $SERVICE"
|
eval $BUILD_CMD
|
||||||
echo "构建服务: $SERVICE"
|
elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == CYGWIN* ]] || [[ "$OS_TYPE" == MSYS* ]]; then
|
||||||
|
# Windows
|
||||||
|
echo "在Windows上构建Docker镜像..."
|
||||||
|
eval $BUILD_CMD
|
||||||
else
|
else
|
||||||
echo "构建所有服务"
|
echo "未知操作系统,尝试使用标准命令构建..."
|
||||||
|
eval $BUILD_CMD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 执行构建命令
|
|
||||||
echo "执行: $BUILD_CMD"
|
|
||||||
$BUILD_CMD
|
|
||||||
|
|
||||||
# 检查构建结果
|
# 检查构建结果
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo "Docker镜像构建成功!"
|
echo "Docker镜像构建成功!"
|
||||||
echo "构建时间: $BUILD_TIME"
|
echo "构建时间: $BUILD_TIME"
|
||||||
echo "可以使用以下命令启动容器:"
|
echo "可以使用以下命令启动容器:"
|
||||||
echo "$COMPOSE_CMD up -d"
|
echo "$COMPOSE_CMD -f \"$SCRIPT_DIR/docker-compose.yml\" up -d"
|
||||||
else
|
else
|
||||||
echo "Docker镜像构建失败,请检查错误信息。"
|
echo "Docker镜像构建失败,请检查错误信息。"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user