FROM node:22

WORKDIR /app

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

ENV NPM_CONFIG_REGISTRY=https://registry.npmjs.org
ENV NPM_CONFIG_FETCH_RETRIES=5
ENV NPM_CONFIG_FETCH_RETRY_MINTIMEOUT=20000
ENV NPM_CONFIG_FETCH_RETRY_MAXTIMEOUT=120000
ENV NPM_CONFIG_FETCH_TIMEOUT=60000
ENV NPM_CONFIG_MAXSOCKETS=10

ENV NODE_ENV=development
RUN npm ci --include=dev --foreground-scripts --no-audit --no-fund --legacy-peer-deps

COPY . .

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

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

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"]
