FROM node:20

WORKDIR /app

COPY package.json package-lock.json ./
COPY scripts ./scripts

RUN npm config set fetch-retry-mintimeout 10000 \
    && npm config set fetch-retry-maxtimeout 120000 \
    && npm config set fetch-timeout 120000 \
    && npm config set fetch-retries 5

ENV NODE_ENV=development
RUN npm ci --include=dev --foreground-scripts

COPY . .

# نام‌ها باید با Environment و Build-time Arguments در Dokploy یکی باشند
ARG VITE_API_BASE_URL
ARG VITE_USE_MOCK_AUTH
ARG VITE_BASE_PATH

RUN node scripts/write-docker-vite-env.mjs \
    && unset VITE_API_BASE_URL VITE_USE_MOCK_AUTH VITE_BASE_PATH \
    && npm run build

ENV NODE_ENV=production
ENV VITE_BASE_PATH=/
ENV PORT=7676

COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

EXPOSE 7676

ENTRYPOINT ["/entrypoint.sh"]
CMD ["node", "scripts/serve-user.mjs"]
