harsh-dev commited on
Commit
3fed1fb
·
unverified ·
1 Parent(s): c9cfeba
Files changed (1) hide show
  1. Dockerfile +3 -97
Dockerfile CHANGED
@@ -2,110 +2,16 @@ FROM node:22-bookworm
2
 
3
  ENV NODE_ENV=production \
4
  HOME=/root \
5
- DSH_WORKSPACE=/data/research \
6
- DSH_PORT=7861 \
7
- HF_PORT=7860
8
 
9
  RUN mkdir -p /data/research /app \
10
  && npm install -g @deepseek-ai/dsh@latest \
11
- && cd /app \
12
- && npm init -y \
13
- && npm install http-proxy
14
-
15
- WORKDIR /app
16
-
17
- RUN cat > /app/proxy.js <<'EOF'
18
- const http = require("http");
19
- const httpProxy = require("http-proxy");
20
-
21
- const proxy = httpProxy.createProxyServer({
22
- target: "http://127.0.0.1:7861",
23
- changeOrigin: false,
24
- ws: true,
25
- xfwd: false
26
- });
27
-
28
- proxy.on("error", (err, req, res) => {
29
- console.error("Proxy error:", err.message);
30
-
31
- if (res && !res.headersSent) {
32
- res.writeHead(502, {
33
- "Content-Type": "text/plain"
34
- });
35
- }
36
-
37
- if (res && !res.writableEnded) {
38
- res.end("DSH backend unavailable");
39
- }
40
- });
41
-
42
- const server = http.createServer((req, res) => {
43
- proxy.web(req, res);
44
- });
45
-
46
- server.on("upgrade", (req, socket, head) => {
47
- proxy.ws(req, socket, head);
48
- });
49
-
50
- server.listen(7860, "0.0.0.0", () => {
51
- console.log("Proxy listening on 0.0.0.0:7860");
52
- });
53
- EOF
54
-
55
- RUN cat > /app/start.sh <<'EOF'
56
- #!/bin/sh
57
- set -eu
58
-
59
- mkdir -p /data/research
60
-
61
- TRUSTED_HOST_ARGS=""
62
-
63
- if [ -n "${SPACE_HOST:-}" ]; then
64
- TRUSTED_HOST_ARGS="--trusted-host ${SPACE_HOST}"
65
- fi
66
-
67
- echo "Starting DeepSeek Harness..."
68
- echo "Trusted host: ${SPACE_HOST:-not-set}"
69
-
70
- dsh web \
71
- --no-open \
72
- --port 7861 \
73
- $TRUSTED_HOST_ARGS &
74
-
75
- DSH_PID=$!
76
-
77
- echo "Waiting for DSH..."
78
- for i in $(seq 1 60); do
79
- if curl -fsS "http://127.0.0.1:7861/" >/dev/null 2>&1; then
80
- echo "DSH is ready."
81
- break
82
- fi
83
-
84
- if ! kill -0 "$DSH_PID" 2>/dev/null; then
85
- echo "DSH exited unexpectedly."
86
- exit 1
87
- fi
88
-
89
- sleep 1
90
- done
91
-
92
- echo "Starting public proxy..."
93
- node /app/proxy.js &
94
-
95
- PROXY_PID=$!
96
-
97
- trap 'kill "$DSH_PID" "$PROXY_PID" 2>/dev/null || true' TERM INT EXIT
98
-
99
- wait "$DSH_PID"
100
- EOF
101
-
102
- RUN chmod +x /app/start.sh \
103
  && apt-get update \
104
- && apt-get install -y --no-install-recommends curl \
105
  && rm -rf /var/lib/apt/lists/*
106
 
107
  WORKDIR /data/research
108
 
109
  EXPOSE 7860
110
 
111
- CMD ["/app/start.sh"]
 
2
 
3
  ENV NODE_ENV=production \
4
  HOME=/root \
5
+ DSH_WORKSPACE=/data/research
 
 
6
 
7
  RUN mkdir -p /data/research /app \
8
  && npm install -g @deepseek-ai/dsh@latest \
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  && apt-get update \
10
+ && apt-get install -y --no-install-recommends socat \
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
  WORKDIR /data/research
14
 
15
  EXPOSE 7860
16
 
17
+ CMD ["sh", "-c", "dsh web --no-open --port 7861 --trusted-host 0.0.0.0:7860 & socat TCP-LISTEN:7860,fork,reuseaddr TCP:127.0.0.1:7861"]