|
|
|
|
@ -14,7 +14,7 @@ RUN npm ci
|
|
|
|
|
RUN DATABASE_URL="postgresql://user:pass@localhost:5432/db" npx prisma generate
|
|
|
|
|
|
|
|
|
|
COPY src ./src
|
|
|
|
|
RUN npm run build && ls -la dist/ && test -f dist/main.js
|
|
|
|
|
RUN npm run build
|
|
|
|
|
|
|
|
|
|
# 阶段2: 生产运行
|
|
|
|
|
FROM node:20-alpine AS runner
|
|
|
|
|
@ -30,14 +30,15 @@ WORKDIR /app
|
|
|
|
|
USER nestjs
|
|
|
|
|
|
|
|
|
|
COPY --chown=nestjs:nodejs package*.json ./
|
|
|
|
|
RUN npm ci --only=production && npm cache clean --force
|
|
|
|
|
COPY --chown=nestjs:nodejs tsconfig*.json ./
|
|
|
|
|
RUN npm ci --only=production && npm install ts-node typescript @types/node --save-dev && npm cache clean --force
|
|
|
|
|
|
|
|
|
|
COPY --chown=nestjs:nodejs prisma ./prisma/
|
|
|
|
|
RUN DATABASE_URL="postgresql://user:pass@localhost:5432/db" npx prisma generate
|
|
|
|
|
|
|
|
|
|
COPY --chown=nestjs:nodejs --from=builder /app/dist ./dist
|
|
|
|
|
|
|
|
|
|
RUN printf '#!/bin/sh\nset -e\necho "Running database migrations..."\nnpx prisma migrate deploy\necho "Starting application..."\nexec node dist/main.js\n' > /app/start.sh && chmod +x /app/start.sh
|
|
|
|
|
RUN printf '#!/bin/sh\nset -e\necho "Running database migrations..."\nnpx prisma migrate deploy\necho "Running database seed..."\nnpx prisma db seed || echo "Seed skipped or already applied"\necho "Starting application..."\nexec node dist/main.js\n' > /app/start.sh && chmod +x /app/start.sh
|
|
|
|
|
|
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
|
|