Commit 51958eda authored by Administrator's avatar Administrator

Update Dockerfile.backend via Son of Anton

parent 24c69f00
FROM node:20-alpine AS base FROM node:20-alpine AS builder
RUN apk add --no-cache libc6-compat openssl
WORKDIR /app RUN apk add --no-cache libc6-compat openssl python3 make g++
WORKDIR /build
# Copy everything # Copy prisma schema (single file, consolidated)
COPY package*.json ./ COPY prisma/schema.prisma ./prisma/schema.prisma
COPY backend/package*.json ./backend/
COPY shared/package*.json ./shared/ # Copy shared package
COPY prisma/ ./prisma/ COPY shared/ ./shared/
# Install backend deps # Install backend deps
WORKDIR /app/backend COPY backend/package.json backend/package-lock.json* ./backend/
WORKDIR /build/backend
RUN npm install --legacy-peer-deps RUN npm install --legacy-peer-deps
# Copy source # Copy backend source
WORKDIR /app WORKDIR /build
COPY shared/ ./shared/
COPY backend/ ./backend/ COPY backend/ ./backend/
COPY prisma/ ./backend/prisma/
# Generate Prisma # Put prisma inside backend
WORKDIR /app/backend RUN cp -r /build/prisma /build/backend/prisma
WORKDIR /build/backend
# Generate Prisma client
RUN npx prisma generate --schema=./prisma/schema.prisma RUN npx prisma generate --schema=./prisma/schema.prisma
# Build # Build
RUN npm run build RUN npm run build
# Production stage # ---- Production ----
FROM node:20-alpine AS runner FROM node:20-alpine
RUN apk add --no-cache libc6-compat openssl RUN apk add --no-cache libc6-compat openssl
WORKDIR /app WORKDIR /app
ENV NODE_ENV=production
COPY --from=base /app/backend/dist ./dist COPY --from=builder /build/backend/dist ./dist
COPY --from=base /app/backend/node_modules ./node_modules COPY --from=builder /build/backend/node_modules ./node_modules
COPY --from=base /app/backend/prisma ./prisma COPY --from=builder /build/backend/prisma ./prisma
COPY --from=base /app/backend/package.json ./ COPY --from=builder /build/backend/package.json ./
ENV NODE_ENV=production
EXPOSE 3001 EXPOSE 3001
CMD ["sh", "-c", "npx prisma migrate deploy --schema=./prisma/schema.prisma && node dist/main.js"] HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
\ No newline at end of file CMD wget -qO- http://localhost:3001/api/health || exit 1
CMD ["sh", "-c", "npx prisma migrate deploy --schema=./prisma/schema.prisma 2>/dev/null || true; node dist/main.js"]
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment