gunnybd01 commited on
Commit
fd92c36
·
verified ·
1 Parent(s): 4ef95eb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -10
Dockerfile CHANGED
@@ -1,22 +1,44 @@
1
  FROM node:20-slim
2
 
3
- RUN apt-get update && apt-get install -y git python3 make g++ && rm -rf /var/lib/apt/lists/*
4
 
5
- # Install 9router from npm
6
  RUN npm install -g 9router
7
 
8
- # HF Spaces requires port 7860
9
- ENV PORT=7860
10
- ENV HOSTNAME=0.0.0.0
11
- ENV NEXT_PUBLIC_BASE_URL=https://gunnybd01-9router.hf.space
12
- ENV INITIAL_PASSWORD=123456
13
  ENV TERM=dumb
14
  ENV NO_COLOR=1
15
  ENV FORCE_COLOR=0
 
 
16
 
17
  EXPOSE 7860
18
 
19
- # start.sh: auto-answer any initial setup prompts then keep running
20
- RUN printf '#!/bin/sh\nset -e\nexec 9router\n' > /start.sh && chmod +x /start.sh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
- CMD ["/bin/sh", "/start.sh"]
 
 
1
  FROM node:20-slim
2
 
3
+ RUN apt-get update && apt-get install -y expect socat && rm -rf /var/lib/apt/lists/*
4
 
 
5
  RUN npm install -g 9router
6
 
 
 
 
 
 
7
  ENV TERM=dumb
8
  ENV NO_COLOR=1
9
  ENV FORCE_COLOR=0
10
+ ENV INITIAL_PASSWORD=123456
11
+ ENV NEXT_PUBLIC_BASE_URL=https://gunnybd01-9router.hf.space
12
 
13
  EXPOSE 7860
14
 
15
+ # expect script: auto-select option 1 (Web UI) then keep the process alive
16
+ RUN cat > /start.exp << 'EXPEOF'
17
+ log_user 1
18
+ set timeout 120
19
+ spawn 9router
20
+ expect {
21
+ "\$ " {
22
+ send "1\n"
23
+ sleep 9999
24
+ }
25
+ "Web UI" {
26
+ send "1\n"
27
+ sleep 9999
28
+ }
29
+ "Terminal UI" {
30
+ send "1\n"
31
+ sleep 9999
32
+ }
33
+ "20128" {
34
+ sleep 9999
35
+ }
36
+ timeout {
37
+ puts "TIMEOUT waiting for menu"
38
+ sleep 9999
39
+ }
40
+ }
41
+ EXPEOF
42
 
43
+ # bridge port 20128 (9router default) to 7860 (HF Spaces required)
44
+ CMD ["/bin/sh", "-c", "expect /start.exp & sleep 30 && socat TCP-LISTEN:7860,fork,reuseaddr TCP:localhost:20128"]