You've already forked DataMate
* refactor: remove db table management from LS adapter (mv to scripts later); change adapter to use the same MySQL DB as other modules. * refactor: Rename LS Adapter module to datamate-python
65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "Label Studio Adapter Starting..."
|
|
echo "=========================================="
|
|
|
|
# Label Studio 本地存储基础路径(从环境变量获取,默认值)
|
|
LABEL_STUDIO_LOCAL_BASE="${LABEL_STUDIO_LOCAL_BASE:-/label-studio/local_files}"
|
|
|
|
echo "=========================================="
|
|
echo "Ensuring Label Studio local storage directories exist..."
|
|
echo "Base path: ${LABEL_STUDIO_LOCAL_BASE}"
|
|
echo "=========================================="
|
|
|
|
# 创建必要的目录
|
|
mkdir -p "${LABEL_STUDIO_LOCAL_BASE}/dataset"
|
|
mkdir -p "${LABEL_STUDIO_LOCAL_BASE}/upload"
|
|
|
|
echo "✓ Directory 'dataset' ready: ${LABEL_STUDIO_LOCAL_BASE}/dataset"
|
|
echo "✓ Directory 'upload' ready: ${LABEL_STUDIO_LOCAL_BASE}/upload"
|
|
|
|
echo "=========================================="
|
|
echo "Directory initialization completed"
|
|
echo "=========================================="
|
|
|
|
# 等待数据库就绪(如果配置了数据库)
|
|
if [ -n "$MYSQL_HOST" ] || [ -n "$POSTGRES_HOST" ]; then
|
|
echo "Waiting for database to be ready..."
|
|
sleep 5
|
|
fi
|
|
|
|
# 运行数据库迁移
|
|
echo "=========================================="
|
|
echo "Running database migrations..."
|
|
echo "=========================================="
|
|
alembic upgrade head
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ Database migrations completed successfully"
|
|
else
|
|
echo "⚠️ WARNING: Database migrations failed"
|
|
echo " The application may not work correctly"
|
|
fi
|
|
|
|
echo "=========================================="
|
|
|
|
# 启动应用
|
|
echo "Starting Label Studio Adapter..."
|
|
echo "Host: ${HOST:-0.0.0.0}"
|
|
echo "Port: ${PORT:-18000}"
|
|
echo "Debug: ${DEBUG:-false}"
|
|
echo "Label Studio URL: ${LABEL_STUDIO_BASE_URL}"
|
|
echo "=========================================="
|
|
|
|
# 转换 LOG_LEVEL 为小写(uvicorn 要求小写)
|
|
LOG_LEVEL_LOWER=$(echo "${LOG_LEVEL:-info}" | tr '[:upper:]' '[:lower:]')
|
|
|
|
# 使用 uvicorn 启动应用
|
|
exec uvicorn app.main:app \
|
|
--host "${HOST:-0.0.0.0}" \
|
|
--port "${PORT:-18000}" \
|
|
--log-level "${LOG_LEVEL_LOWER}" \
|
|
${DEBUG:+--reload}
|