Files
fabric_trade_server/Dockerfile
T

34 lines
1.2 KiB
Docker
Raw Normal View History

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