#!/bin/bash # create.sh - 启动Python容器执行create_table.py脚本 set -e # 遇到错误立即退出 echo "🚀 启动Python容器执行create_table.py..." # 获取脚本所在目录的绝对路径 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" # 容器名称 CONTAINER_NAME="python-create-runner" # 检查是否已存在同名容器,如果存在则删除 if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then echo "🧹 清理已存在的容器 ${CONTAINER_NAME}..." docker rm -f "${CONTAINER_NAME}" >/dev/null 2>&1 fi # 运行Python容器 echo "📦 启动Python容器..." docker run --rm \ --name "${CONTAINER_NAME}" \ -v "${SCRIPT_DIR}:/app/create" \ -v "${PROJECT_ROOT}/infra/postgres/sql:/app/infra/postgres/sql" \ -w /app \ python:3.13.7-alpine3.22 \ sh -c " echo '📋 容器内环境信息:' python --version echo '' echo '🔧 安装依赖(如果需要)...' pip install --quiet --no-cache-dir psycopg2-binary >/dev/null 2>&1 || true echo '⚙️ 执行 create_table.py...' python create/create_table.py echo '' echo '✅ 执行完成!' " echo "" echo "🎉 create.sh 执行完成!"