# Build Stage

FROM docker.io/node:25.8.1-alpine3.23@sha256:5209bcaca9836eb3448b650396213dbe9d9a34d31840c2ae1f206cb2986a8543 AS build

WORKDIR /app

# Install all dependencies (including devDependencies)
COPY package.json ./
COPY package-lock.json ./

RUN npm install
COPY . .

# Production Stage
FROM docker.io/node:25.8.1-alpine3.23@sha256:5209bcaca9836eb3448b650396213dbe9d9a34d31840c2ae1f206cb2986a8543

WORKDIR /app

COPY --from=build /app ./

# RUN mkdir -p public/assets && chown -R node:node /app

# ENV variables (Default for Kubernetes)
ENV MONGO_URL=mongodb://mongodb:27017/mern-social
# ENV ENABLE_CORS=false
ENV ENABLE_CORS=true
ENV JWT_SECRET=changeme
ENV JWT_REFRESH_SECRET=changeme2
ENV PORT=3001
ENV NODE_ENV=production

EXPOSE 3001

CMD ["npm", "start"]