api-server/Dockerfile
WangDL 1fb6dd4929
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 1m42s
fix: Dockerfile build arg for prisma generate + cleanup deploy
- Add ARG DATABASE_URL to Dockerfile so prisma generate works at build time
- Fix env file path (/opt/zhixi/env/ not /etc/zhixi/)
- Fix MySQL container name (mysql, not mysql-zhixi)
- Use correct DB name (zhixi_prod)
- Prevent duplicate mysql/redis containers from docker compose

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 17:25:35 +08:00

35 lines
722 B
Docker

FROM node:22-alpine AS builder
WORKDIR /app
RUN apk add --no-cache openssl
ARG DATABASE_URL="mysql://placeholder:placeholder@localhost:3306/placeholder"
ENV DATABASE_URL=$DATABASE_URL
COPY package.json package-lock.json ./
RUN npm ci
COPY tsconfig.json tsconfig.build.json nest-cli.json ./
COPY prisma ./prisma
COPY src ./src
RUN npx prisma generate
RUN npm run build
RUN npm prune --production
FROM node:22-alpine
WORKDIR /app
RUN apk add --no-cache openssl
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/prisma ./prisma
COPY --from=builder /app/package.json ./
EXPOSE 3000
CMD ["sh", "-c", "npx prisma migrate deploy && node dist/main.js"]