FROM docker.iranserver.com/node:20

WORKDIR /app

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

RUN npm config set registry https://mirror2.chabokan.net/npm/ \
    && npm config set replace-registry-host npmjs \
    && 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 --registry=https://mirror2.chabokan.net/npm/

COPY . .

# نام‌ها باید با Environment و Build-time Arguments در Dokploy یکی باشند
ARG VITE_SUBSCRIPTION_URL
ARG VITE_BASE_PATH
ARG VITE_DEV_DOMAIN
ARG VITE_PLATFORM_DOMAIN
ARG VITE_TENANT_DOMAIN
ARG VITE_NODE_BASE_URL
ARG VITE_TENANT_NODE_URL
ARG VITE_TENANT_SUPA_URL
ARG NUXT_PUBLIC_SUBSCRIPTION_URL
ARG NUXT_PUBLIC_NODE_BASE_URL

RUN node scripts/write-docker-vite-env.mjs \
    && unset VITE_SUBSCRIPTION_URL VITE_BASE_PATH VITE_DEV_DOMAIN VITE_PLATFORM_DOMAIN VITE_TENANT_DOMAIN VITE_NODE_BASE_URL VITE_TENANT_NODE_URL VITE_TENANT_SUPA_URL NUXT_PUBLIC_SUBSCRIPTION_URL NUXT_PUBLIC_NODE_BASE_URL \
    && npm run build

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

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

EXPOSE 7676

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