Update Dockerfile
Browse files- Dockerfile +10 -10
Dockerfile
CHANGED
|
@@ -4,16 +4,16 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|
| 4 |
ENV HOSTNAME=Nobita
|
| 5 |
|
| 6 |
# -----------------------------
|
| 7 |
-
# 1. Install Node.js v20 &
|
| 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/*
|
| 14 |
|
| 15 |
# -----------------------------
|
| 16 |
-
# 2. Install code-server
|
| 17 |
# -----------------------------
|
| 18 |
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
| 19 |
|
|
@@ -23,7 +23,7 @@ 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
|
| 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 |
|
|
@@ -31,15 +31,15 @@ USER user
|
|
| 31 |
EXPOSE 7860
|
| 32 |
|
| 33 |
# -----------------------------
|
| 34 |
-
# 4. SMART STARTUP (THE
|
| 35 |
# -----------------------------
|
| 36 |
-
# Penjelasan
|
| 37 |
-
# -
|
| 38 |
-
#
|
|
|
|
| 39 |
# -----------------------------
|
| 40 |
CMD bash -c "echo -e 'nameserver 8.8.8.8\nnameserver 1.1.1.1' > /tmp/dns/resolv.conf; \
|
| 41 |
-
|
| 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 \
|
|
|
|
| 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/*
|
| 14 |
|
| 15 |
# -----------------------------
|
| 16 |
+
# 2. Install code-server
|
| 17 |
# -----------------------------
|
| 18 |
RUN curl -fsSL https://code-server.dev/install.sh | sh
|
| 19 |
|
|
|
|
| 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 |
|
|
|
|
| 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 \
|