|
|
|
FROM node:20-alpine AS builder |
|
RUN apk add --no-cache libc6-compat |
|
WORKDIR /app |
|
|
|
|
|
COPY frontend/package.json frontend/package-lock.json ./ |
|
RUN npm install |
|
|
|
|
|
COPY frontend ./ |
|
RUN npm run build |
|
|
|
|
|
RUN npm install -g pm2 |
|
|
|
|
|
FROM node:20-alpine |
|
|
|
|
|
WORKDIR /tmp |
|
RUN mkdir -p /tmp/app/.next/cache/images /tmp/app/.next/cache/fetch-cache |
|
|
|
|
|
COPY --from=builder /app /tmp/app |
|
|
|
WORKDIR /tmp/app |
|
|
|
|
|
RUN chown -R node:node /tmp/app |
|
|
|
|
|
RUN npm install -g pm2 |
|
|
|
|
|
ENV PORT=7860 |
|
|
|
|
|
EXPOSE 7860 |
|
|
|
|
|
USER node |
|
CMD ["pm2-runtime", "start", "npm", "--", "start"] |