Place2Play / Dockerfile
3v324v23's picture
feat: initial clean deploy without binary assets
1d87050
raw
history blame contribute delete
806 Bytes
# Stage 1: Build Client
FROM node:18-alpine AS client-builder
WORKDIR /app/client
COPY client/package*.json ./
RUN npm install
COPY client/ ./
# Next.js export requires this to create the 'out' folder
RUN npm run build
# Stage 2: Build Server
FROM node:18-alpine AS server-builder
WORKDIR /app/server
COPY server/package*.json ./
RUN npm install
COPY server/ ./
RUN npm run build
# Stage 3: Runner
FROM node:18-alpine
WORKDIR /app
# Copy Server
COPY --from=server-builder /app/server/dist ./server/dist
COPY --from=server-builder /app/server/package*.json ./server/
RUN cd server && npm install --production
# Copy Frontend Static Files (from 'out' folder)
COPY --from=client-builder /app/client/out ./client/out
ENV PORT=7860
ENV NODE_ENV=production
EXPOSE 7860
CMD ["node", "server/dist/server.js"]