#!/bin/bash

# 设置当前目录
BASE_DIR=$(pwd)

# 设置 Docker 镜像版本
RUNTIME_IMAGE="docker.all-hands.dev/all-hands-ai/runtime:0.23-nikolaik"
APP_IMAGE="docker.all-hands.dev/all-hands-ai/openhands:0.23"
CONTAINER_NAME="openhands-app"

# 定义 OpenHands 运行时状态目录
STATE_DIR="$BASE_DIR/openhands-state"

# 确保状态目录存在
mkdir -p "$STATE_DIR"

echo "🔄 正在拉取 Docker 运行时镜像: $RUNTIME_IMAGE..."
docker pull "$RUNTIME_IMAGE"

# 检查是否已有运行的容器，若有则先停止并删除
if docker ps -a --format '{{.Names}}' | grep -Eq "^$CONTAINER_NAME\$"; then
    echo "⚠️ 发现已有容器 $CONTAINER_NAME，正在停止并删除..."
    docker stop "$CONTAINER_NAME" && docker rm "$CONTAINER_NAME"
fi

# 运行 OpenHands 应用容器
echo "🚀 启动 OpenHands 应用容器..."
docker run -it --rm --pull=always \
    -e SANDBOX_RUNTIME_CONTAINER_IMAGE="$RUNTIME_IMAGE" \
    -e LOG_ALL_EVENTS=true \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$STATE_DIR:/.openhands-state" \
    -p 3000:3000 \
    --add-host host.docker.internal:host-gateway \
    --name "$CONTAINER_NAME" \
    "$APP_IMAGE"

echo "✅ OpenHands 运行完成！"

