Aqso commited on
Commit
0a32700
·
verified ·
1 Parent(s): b024ec8

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +19 -14
Dockerfile CHANGED
@@ -4,10 +4,10 @@ ENV DEBIAN_FRONTEND=noninteractive
4
  ENV HOSTNAME=Nobita
5
 
6
  # -----------------------------
7
- # 1. Install Node.js v20 & Proot
8
  # -----------------------------
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
- ca-certificates curl wget git sudo procps proot \
11
  && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
12
  && apt-get install -y nodejs \
13
  && rm -rf /var/lib/apt/lists/*
@@ -23,23 +23,28 @@ RUN curl -fsSL https://code-server.dev/install.sh | sh
23
  RUN useradd -m -u 1000 user
24
  WORKDIR /home/user/app
25
 
26
- # Siapkan folder DNS palsu & VS Code
27
- RUN mkdir -p /tmp/vsc /tmp/ext /tmp/dns && \
28
- chown -R user:user /tmp/vsc /tmp/ext /tmp/dns /home/user/app
29
 
30
  USER user
31
  EXPOSE 7860
32
 
33
  # -----------------------------
34
- # 4. SMART STARTUP (THE PROOT WAY)
35
- # -----------------------------
36
- # Penjelasan Level Max:
37
- # - proot -b /tmp/dns/resolv.conf:/etc/resolv.conf:
38
- # Kita 'menindih' file asli dengan file palsu kita HANYA di dalam sesi ini.
39
- # - Ini bikin Node.js, bash, dan curl 'melihat' DNS 8.8.8.8 secara nyata.
40
- # -----------------------------
41
- CMD bash -c "echo -e 'nameserver 8.8.8.8\nnameserver 1.1.1.1' > /tmp/dns/resolv.conf; \
42
- proot -b /tmp/dns/resolv.conf:/etc/resolv.conf \
 
 
 
 
 
 
43
  code-server --bind-addr 0.0.0.0:7860 \
44
  --auth none \
45
  --user-data-dir /tmp/vsc \
 
4
  ENV HOSTNAME=Nobita
5
 
6
  # -----------------------------
7
+ # 1. Install Node.js v20 & Tools
8
  # -----------------------------
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
+ ca-certificates curl wget git sudo procps \
11
  && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
12
  && apt-get install -y nodejs \
13
  && rm -rf /var/lib/apt/lists/*
 
23
  RUN useradd -m -u 1000 user
24
  WORKDIR /home/user/app
25
 
26
+ # Folder temp biar aman
27
+ RUN mkdir -p /tmp/vsc /tmp/ext && chown -R user:user /tmp/vsc /tmp/ext /home/user/app
 
28
 
29
  USER user
30
  EXPOSE 7860
31
 
32
  # -----------------------------
33
+ # 4. STARTUP (THE GHOST INJECTION)
34
+ # -----------------------------
35
+ CMD bash -c " \
36
+ # A. BUAT SCRIPT INJEKSI DNS (Nancep di Node.js)
37
+ echo \"const dns = require('node:dns'); dns.setServers(['8.8.8.8', '1.1.1.1']); console.log('🛡️ DNS Google Terinjeksi ke Runtime Node!');\" > /home/user/app/inject.js; \
38
+ \
39
+ # B. SET ENV VARIABLE (Biar Node.js otomatis pake inject.js)
40
+ export NODE_OPTIONS='--require /home/user/app/inject.js'; \
41
+ \
42
+ # C. SUNTIK BASH (Biar terminal VS Code otomatis pake DNS Google)
43
+ echo \"alias curl='curl --dns-servers 8.8.8.8'\" >> ~/.bashrc; \
44
+ echo \"alias npm='npm --dns=8.8.8.8'\" >> ~/.bashrc; \
45
+ echo \"export NODE_OPTIONS='--require /home/user/app/inject.js'\" >> ~/.bashrc; \
46
+ \
47
+ # D. JALANKAN VS CODE
48
  code-server --bind-addr 0.0.0.0:7860 \
49
  --auth none \
50
  --user-data-dir /tmp/vsc \