Spaces:
Runtime error
Runtime error
| FROM node:20-slim | |
| # 1. تثبيت المتطلبات الأساسية | |
| RUN apt-get update && apt-get install -y postgresql postgresql-contrib redis-server supervisor nginx curl && rm -rf /var/lib/apt/lists/* | |
| # 2. إعداد الصلاحيات لمستخدم 'node' | |
| USER root | |
| RUN mkdir -p /var/run/postgresql /var/log/postgresql /var/lib/postgresql /var/run/redis /var/log/nginx /var/lib/nginx | |
| RUN chown -R node:node /var/run/postgresql /var/log/postgresql /var/lib/postgresql /var/run/redis /var/log/nginx /var/lib/nginx | |
| # 3. تجهيز مجلدات المشروع | |
| WORKDIR /app | |
| COPY --chown=node:node . . | |
| # 4. بناء الـ Backend | |
| WORKDIR /app/backend | |
| RUN npm install | |
| RUN npm run build | |
| # 5. بناء الـ Frontend | |
| WORKDIR /app/frontend | |
| RUN npm install | |
| RUN npm run build | |
| # 6. إعداد Nginx و Supervisor | |
| # استبدال الملف الرئيسي لـ Nginx لضمان عمله كمستخدم غير جذري | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf | |
| # 7. إعداد ملف التشغيل | |
| COPY entrypoint.sh /app/entrypoint.sh | |
| RUN chmod +x /app/entrypoint.sh | |
| RUN chown node:node /app/entrypoint.sh | |
| # التبديل إلى المستخدم 'node' | |
| USER node | |
| ENV PGDATA=/home/node/pgdata | |
| ENV PATH="/usr/lib/postgresql/17/bin:/usr/lib/postgresql/16/bin:/usr/lib/postgresql/15/bin:/home/node/.local/bin:$PATH" | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/app/entrypoint.sh"] | |