File size: 1,155 Bytes
d41fe21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
FROM node:22-slim

# Version pinning (default: latest)
ARG OPENCLAW_VERSION=latest

# Install git, ca-certificates, jq, and curl
RUN apt-get update && apt-get install -y \
    git \
    ca-certificates \
    jq \
    curl \
    --no-install-recommends && \
    rm -rf /var/lib/apt/lists/*

# Reuse existing node user (UID 1000)
RUN mkdir -p /home/node/app /home/node/.openclaw && \
    chown -R 1000:1000 /home/node

# Install OpenClaw (version configurable via build arg)
RUN npm install -g openclaw@${OPENCLAW_VERSION}

# Copy files
COPY --chown=1000:1000 dns-fix.js /opt/dns-fix.js
COPY --chown=1000:1000 health-server.js /home/node/app/health-server.js
COPY --chown=1000:1000 start.sh /home/node/app/start.sh
COPY --chown=1000:1000 keep-alive.sh /home/node/app/keep-alive.sh
COPY --chown=1000:1000 workspace-sync.sh /home/node/app/workspace-sync.sh
RUN chmod +x /home/node/app/start.sh /home/node/app/keep-alive.sh /home/node/app/workspace-sync.sh

USER node

ENV HOME=/home/node \
    PATH=/home/node/.local/bin:/usr/local/bin:$PATH \
    NODE_OPTIONS="--require /opt/dns-fix.js"

WORKDIR /home/node/app

EXPOSE 7860

CMD ["/home/node/app/start.sh"]