Aqso commited on
Commit
a387bc6
·
verified ·
1 Parent(s): 8f83883

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +48 -0
Dockerfile ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+ ENV HOSTNAME=Nobita
5
+
6
+ # -----------------------------
7
+ # 1. Install Node.js v20 & DNS Hijacker (libnss-wrapper)
8
+ # -----------------------------
9
+ RUN apt-get update && apt-get install -y --no-install-recommends \
10
+ ca-certificates curl wget git sudo procps libnss-wrapper \
11
+ && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
12
+ && apt-get install -y nodejs \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ # -----------------------------
16
+ # 2. Install code-server (VS Code)
17
+ # -----------------------------
18
+ RUN curl -fsSL https://code-server.dev/install.sh | sh
19
+
20
+ # -----------------------------
21
+ # 3. Setup User & Workspace
22
+ # -----------------------------
23
+ RUN useradd -m -u 1000 user
24
+ WORKDIR /home/user/app
25
+
26
+ # Siapkan folder temp untuk VS Code & DNS palsu
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 NINJA WAY)
35
+ # -----------------------------
36
+ # Penjelasan:
37
+ # - Kita buat file resolv.conf sendiri di /tmp (Aman dari scan HF)
38
+ # - Kita pake LD_PRELOAD buat maksa sistem baca file itu, bukan /etc/resolv.conf
39
+ # -----------------------------
40
+ CMD bash -c "echo -e 'nameserver 8.8.8.8\nnameserver 1.1.1.1' > /tmp/dns/resolv.conf; \
41
+ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libnss_wrapper.so; \
42
+ export NSS_WRAPPER_RESOLV_CONF=/tmp/dns/resolv.conf; \
43
+ code-server --bind-addr 0.0.0.0:7860 \
44
+ --auth none \
45
+ --user-data-dir /tmp/vsc \
46
+ --extensions-dir /tmp/ext \
47
+ --disable-telemetry"
48
+