33 lines
826 B
Docker
33 lines
826 B
Docker
FROM node:20-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
COPY apps/api/package.json ./apps/api/package.json
|
|
COPY apps/web/package.json ./apps/web/package.json
|
|
RUN npm ci
|
|
|
|
COPY . .
|
|
RUN npm run prisma:generate -w apps/api
|
|
RUN npm run build -w apps/api
|
|
|
|
FROM node:20-alpine AS runner
|
|
|
|
WORKDIR /app
|
|
ENV NODE_PATH=/app/apps/api/node_modules
|
|
ENV PORT=3000
|
|
|
|
COPY package*.json ./
|
|
COPY apps/api/package.json ./apps/api/package.json
|
|
COPY apps/web/package.json ./apps/web/package.json
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY --from=builder /app/apps/api/dist ./apps/api/dist
|
|
COPY --from=builder /app/apps/api/prisma ./apps/api/prisma
|
|
|
|
VOLUME ["/app/apps/api/uploads"]
|
|
|
|
EXPOSE 3000
|
|
|
|
# During initial setup we use `prisma db push` at container start to bypass baseline migration issues.
|
|
CMD ["npm", "run", "start:docker", "-w", "apps/api"] |