Download Dockerfile from oGiiM/Absa: direct link, hf CLI and curl.
- Browser
- Download file 2.01 kB
-
https://huggingface.co/spaces/oGiiM/Absa/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/oGiiM/Absa/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/oGiiM/Absa/resolve/main/Dockerfile
2.01 kB
| # ╔══════════════════════════════════════════════════════╗ | |
| # Stage 1 — Builder: تثبيت وبناء كل الـ native modules | |
| # ╚══════════════════════════════════════════════════════╝ | |
| FROM node:20-slim AS builder | |
| WORKDIR /app | |
| # build tools لـ node-gyp + native modules (mineflayer, pathfinder) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| python3 make g++ gcc \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY package.json ./ | |
| RUN npm install --production --no-optional | |
| # ╔══════════════════════════════════════════════════════╗ | |
| # Stage 2 — Final: image نظيفة بدون build tools | |
| # ╚══════════════════════════════════════════════════════╝ | |
| FROM node:20-slim | |
| WORKDIR /app | |
| # فقط curl و dnsutils للـ healthcheck والشبكة | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| curl dnsutils \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # node:20-slim جاي بـ user "node" بـ UID 1000 تلقائياً | |
| RUN chown -R node:node /app | |
| # ننقل node_modules المبنية من الـ builder بس | |
| COPY --from=builder --chown=node:node /app/node_modules ./node_modules | |
| COPY --chown=node:node package.json ./ | |
| COPY --chown=node:node bot-team.js ./ | |
| COPY --chown=node:node aternos-starter.js ./ | |
| USER node | |
| EXPOSE 7860 | |
| ENV PORT=7860 | |
| ENV NODE_ENV=production | |
| ENV NODE_OPTIONS="--max-old-space-size=450" | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=40s \ | |
| CMD curl -sf http://localhost:7860/healthz | grep -q '"status":"ok"' || exit 1 | |
| CMD ["node", "--max-old-space-size=450", "bot-team.js"] | |