28 lines
597 B
Docker
28 lines
597 B
Docker
## Multi-stage Dockerfile for building the TypeScript server
|
|
FROM node:20-alpine AS builder
|
|
WORKDIR /
|
|
|
|
# Copy package files and install (in container only)
|
|
COPY server/package*.json ./server/
|
|
WORKDIR /server
|
|
RUN npm ci --silent
|
|
|
|
# Copy server source and build
|
|
COPY server/ ./
|
|
RUN npm run build
|
|
|
|
## Production image
|
|
FROM node:20-alpine AS runtime
|
|
|
|
WORKDIR /
|
|
|
|
# Copy built server
|
|
COPY --from=builder /server/dist ./server/dist
|
|
COPY --from=builder /server/node_modules ./server/node_modules
|
|
COPY server/package*.json /server/
|
|
|
|
WORKDIR /server
|
|
ENV NODE_ENV=production
|
|
EXPOSE 8930
|
|
CMD ["npm", "start"]
|