devratharaisaar commited on
Commit
a7f16cd
Β·
verified Β·
1 Parent(s): a81f8b2

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +16 -54
Dockerfile CHANGED
@@ -1,68 +1,30 @@
1
- # OpenClaw on Hugging Face Spaces β€” optimized build
2
- FROM node:22-bookworm
3
 
4
  SHELL ["/bin/bash", "-c"]
5
 
6
- # ── Layer 1: System dependencies ─────────────────────────────
7
- RUN echo "[build][layer1] Installing system dependencies..." \
8
- && apt-get update \
9
- && apt-get install -y --no-install-recommends \
10
  git \
11
- ca-certificates \
12
  curl \
13
  python3 \
14
  python3-pip \
15
- patch \
16
- && rm -rf /var/lib/apt/lists/* \
17
- && pip3 install --no-cache-dir --break-system-packages huggingface_hub \
18
- && corepack enable \
19
- && mkdir -p /app \
20
- && chown node:node /app \
21
- && mkdir -p /home/node/.openclaw/workspace /home/node/.openclaw/credentials \
22
- && chown -R node:node /home/node
23
 
24
- # Switch to node user
25
- USER node
26
- ENV HOME=/home/node
27
- WORKDIR /app
28
 
29
- # ── Layer 2: Clone + Patch + Build ───────────────────────────
30
- COPY --chown=node:node patches /app/patches
31
 
32
- RUN echo "[build][layer2] Clone + build OpenClaw..." \
33
- && git clone --depth 1 https://github.com/openclaw/openclaw.git \
34
- && cd openclaw \
35
- \
36
- # Apply patches safely (won't fail build)
37
- && for p in /app/patches/*.patch; do \
38
- if [ -f "$p" ]; then \
39
- patch -p1 < "$p" || echo "[build] patch skipped: $(basename $p)"; \
40
- fi; \
41
- done \
42
- \
43
- && pnpm install --no-frozen-lockfile \
44
- && pnpm build \
45
- && OPENCLAW_PREFER_PNPM=1 pnpm ui:build \
46
- \
47
- # Verify build output
48
- && test -f dist/entry.js \
49
- && test -f dist/plugin-sdk/index.js \
50
- && mkdir -p /app/openclaw/empty-bundled-plugins \
51
- && node -e "console.log(require('./package.json').version)" > /app/openclaw/.version
52
-
53
- # ── Layer 3: Scripts ─────────────────────────────────────────
54
- COPY --chown=node:node scripts /home/node/scripts
55
- COPY --chown=node:node openclaw.json /home/node/scripts/openclaw.json.default
56
-
57
- RUN chmod +x /home/node/scripts/entrypoint.sh \
58
- && chmod +x /home/node/scripts/sync_hf.py
59
 
60
- # ── Environment ──────────────────────────────────────────────
61
  ENV NODE_ENV=production
62
- ENV OPENCLAW_BUNDLED_PLUGINS_DIR=/app/openclaw/empty-bundled-plugins
63
- ENV OPENCLAW_PREFER_PNPM=1
64
- ENV PATH="/home/node/.local/bin:$PATH"
65
 
66
- WORKDIR /home/node
 
67
 
68
- CMD ["/home/node/scripts/entrypoint.sh"]
 
 
1
+ FROM node:20-bookworm
 
2
 
3
  SHELL ["/bin/bash", "-c"]
4
 
5
+ # Install minimal dependencies
6
+ RUN apt-get update && apt-get install -y \
 
 
7
  git \
 
8
  curl \
9
  python3 \
10
  python3-pip \
11
+ && rm -rf /var/lib/apt/lists/*
 
 
 
 
 
 
 
12
 
13
+ # Install huggingface hub
14
+ RUN pip3 install --no-cache-dir huggingface_hub
 
 
15
 
16
+ # Install OpenClaw globally (NO BUILD STEP)
17
+ RUN npm install -g @openclaw/openclaw
18
 
19
+ # Workspace
20
+ RUN mkdir -p /home/node/.openclaw
21
+ WORKDIR /home/node
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
 
23
  ENV NODE_ENV=production
24
+ ENV OPENCLAW_HOME=/home/node/.openclaw
 
 
25
 
26
+ # Expose port
27
+ EXPOSE 7860
28
 
29
+ # Start gateway
30
+ CMD ["openclaw", "gateway"]