- Dockerfile: drop package-lock.json copy, use npm i instead of npm ci so install works even if lock file is slightly out of sync - docker-compose: map host port 5656 → container port 3000
29 lines
462 B
Docker
29 lines
462 B
Docker
# ---- Build stage ----
|
|
FROM node:22-alpine AS build
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package.json ./
|
|
RUN npm i
|
|
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
# Prune dev dependencies for the production image
|
|
RUN npm prune --omit=dev
|
|
|
|
# ---- Run stage ----
|
|
FROM node:22-alpine AS run
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /app/package.json ./
|
|
COPY --from=build /app/node_modules ./node_modules
|
|
COPY --from=build /app/build ./build
|
|
|
|
ENV PORT=3000
|
|
ENV HOST=0.0.0.0
|
|
EXPOSE 3000
|
|
|
|
CMD ["node", "build"]
|