82 lines
2.5 KiB
Bash
82 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# create.sh - 启动Python容器执行create_table.py和create_src.py脚本
|
|
|
|
set -e # 遇到错误立即退出
|
|
|
|
# 定义表名变量,可以根据需要修改
|
|
TABLE_NAME="cn_pmi_records"
|
|
|
|
echo "🚀 开始创建流程,表名: ${TABLE_NAME}"
|
|
echo "=========================================="
|
|
|
|
# ========== 第一部分:创建数据库表 ==========
|
|
echo "📋 第一步:创建数据库表结构..."
|
|
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容器执行create_table.py
|
|
echo "📦 启动Python容器执行create_table.py..."
|
|
docker run --rm \
|
|
--name "${CONTAINER_NAME}" \
|
|
-v "${SCRIPT_DIR}:/app/create" \
|
|
-v "${PROJECT_ROOT}/infra/postgres/sql:/app/infra/postgres/sql" \
|
|
-e TABLE_NAME="${TABLE_NAME}" \
|
|
-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 '✅ create_table.py 执行完成!'
|
|
"
|
|
|
|
# ========== 第二部分:创建服务结构 ==========
|
|
echo ""
|
|
echo "📋 第二步:创建服务文件夹结构..."
|
|
echo "🚀 执行create_src.py..."
|
|
|
|
# 运行Python容器执行create_src.py
|
|
docker run --rm \
|
|
--name "${CONTAINER_NAME}-src" \
|
|
-v "${SCRIPT_DIR}:/app/create" \
|
|
-v "${PROJECT_ROOT}/services:/app/services" \
|
|
-e TABLE_NAME="${TABLE_NAME}" \
|
|
-w /app \
|
|
python:3.13.7-alpine3.22 \
|
|
sh -c "
|
|
echo '📋 容器内环境信息:'
|
|
python --version
|
|
echo ''
|
|
|
|
echo '⚙️ 执行 create_src.py...'
|
|
python create/create_src.py
|
|
|
|
echo ''
|
|
echo '✅ create_src.py 执行完成!'
|
|
"
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "🎉 所有任务执行完成!"
|
|
echo "📋 表名: ${TABLE_NAME}"
|
|
echo "📁 服务目录: ${PROJECT_ROOT}/services/${TABLE_NAME}" |