fix(identity-service): 在 Docker 启动时自动运行 seed

- 安装 ts-node 用于运行 seed.ts
- 启动脚本中添加 prisma db seed 命令
- 自动初始化管理员账户

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2025-12-19 06:07:25 -08:00
parent b2c82ebeab
commit 56fed2e5f3
1 changed files with 6 additions and 3 deletions

View File

@ -41,9 +41,10 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
&& rm -rf /var/lib/apt/lists/*
# Install production dependencies only
# Install production dependencies + ts-node for seed
COPY package*.json ./
RUN npm ci --only=production
COPY tsconfig*.json ./
RUN npm ci --only=production && npm install ts-node typescript @types/node --save-dev
# Copy Prisma schema and generate client
COPY prisma ./prisma/
@ -52,11 +53,13 @@ RUN DATABASE_URL="postgresql://user:pass@localhost:5432/db" npx prisma generate
# Copy built files
COPY --from=builder /app/dist ./dist
# Create startup script that runs migrations before starting the app
# Create startup script that runs migrations and seed before starting the app
RUN echo '#!/bin/sh\n\
set -e\n\
echo "Running database migrations..."\n\
npx prisma migrate deploy\n\
echo "Running database seed..."\n\
npx prisma db seed || echo "Seed completed (or already seeded)"\n\
echo "Starting application..."\n\
exec node dist/src/main.js\n' > /app/start.sh && chmod +x /app/start.sh