# bookworm کامل تا OpenSSL آماده باشد (بدون apt روی سرور ایران) FROM node:22-bookworm WORKDIR /app ENV NODE_ENV=production ENV TZ=Asia/Tehran COPY deploy-bundle.tar.gz /tmp/deploy-bundle.tar.gz RUN tar -xzf /tmp/deploy-bundle.tar.gz -C /app \ && rm /tmp/deploy-bundle.tar.gz # هیچ دستور prisma یا npm روی سرور اجرا نمی‌شود؛ همه چیز از قبل ساخته آمده است ENV CHECKPOINT_DISABLE=1 ENV DO_NOT_TRACK=1 ENV PRISMA_HIDE_UPDATE_MESSAGE=1 COPY package.json package-lock.json prisma.config.ts /app/ COPY prisma /app/prisma # کلاینت Prisma روی سیستم دولوپر با scripts/pack-prisma-client.sh ساخته می‌شود COPY prisma-client.tar.gz /tmp/prisma-client.tar.gz RUN rm -rf /app/node_modules/.prisma/client \ && mkdir -p /app/node_modules/.prisma \ && tar -xzf /tmp/prisma-client.tar.gz -C /app/node_modules/.prisma \ && rm /tmp/prisma-client.tar.gz # dist آخر باشد تا دیپلوی معمولی فقط همین لایه را دوباره بسازد COPY dist /app/dist COPY docker-entrypoint.sh /app/docker-entrypoint.sh RUN chmod +x /app/docker-entrypoint.sh EXPOSE 3000 ENTRYPOINT ["./docker-entrypoint.sh"]