Update Dockerfile
Browse files- Dockerfile +9 -14
Dockerfile
CHANGED
|
@@ -1,42 +1,37 @@
|
|
| 1 |
-
# Gunakan base image Python standar Hugging Face
|
| 2 |
FROM python:3.10-slim
|
| 3 |
|
| 4 |
-
# 1. SETUP SYSTEM (ROOT PHASE)
|
| 5 |
USER root
|
|
|
|
| 6 |
RUN apt-get update && apt-get install -y \
|
| 7 |
curl git procps gnupg ca-certificates \
|
| 8 |
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
| 9 |
&& apt-get install -y nodejs \
|
| 10 |
&& rm -rf /var/lib/apt/lists/*
|
| 11 |
|
| 12 |
-
# 2. INSTALL TTYD MANUALLY
|
| 13 |
-
# Kita ambil binary langsung dari GitHub karena repo Debian Trixie belum ada ttyd
|
| 14 |
RUN curl -fsSL https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64 -o /usr/local/bin/ttyd && \
|
| 15 |
chmod +x /usr/local/bin/ttyd
|
| 16 |
|
| 17 |
-
# 3. MASKING & SCRIPT GLOBAL (DNS &
|
| 18 |
-
# Kita rename node agar tidak terdeteksi sebagai bot engine
|
| 19 |
RUN ln -s $(command -v node) /usr/local/bin/python-internal-service && \
|
| 20 |
printf "#!/bin/bash\n\
|
| 21 |
export NODE_OPTIONS='--dns-result-order=ipv4first'\n\
|
| 22 |
-
#
|
| 23 |
-
ttyd -p 8080 -b /terminal bash &\n\
|
|
|
|
|
|
|
| 24 |
if [ -f 'bot.js' ]; then python-internal-service bot.js & fi\n\
|
| 25 |
python main.py\n" > /usr/local/bin/start-app && \
|
| 26 |
chmod +x /usr/local/bin/start-app
|
| 27 |
|
| 28 |
-
# 4. USER
|
| 29 |
RUN useradd -m -u 1000 user && \
|
| 30 |
pip install --no-cache-dir fastapi uvicorn httpx websockets
|
| 31 |
WORKDIR /home/user
|
| 32 |
|
| 33 |
-
# 5. FINAL COPY
|
| 34 |
-
# Pastikan semua file di-copy dengan ownership user 1000
|
| 35 |
USER user
|
| 36 |
COPY --chown=user:user . .
|
| 37 |
|
| 38 |
-
# Port standar Hugging Face
|
| 39 |
EXPOSE 7860
|
| 40 |
-
|
| 41 |
-
# Jalankan skrip orkestrasi
|
| 42 |
CMD ["start-app"]
|
|
|
|
|
|
|
| 1 |
FROM python:3.10-slim
|
| 2 |
|
|
|
|
| 3 |
USER root
|
| 4 |
+
# 1. INSTALL SYSTEM
|
| 5 |
RUN apt-get update && apt-get install -y \
|
| 6 |
curl git procps gnupg ca-certificates \
|
| 7 |
&& curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
|
| 8 |
&& apt-get install -y nodejs \
|
| 9 |
&& rm -rf /var/lib/apt/lists/*
|
| 10 |
|
| 11 |
+
# 2. INSTALL TTYD MANUALLY
|
|
|
|
| 12 |
RUN curl -fsSL https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64 -o /usr/local/bin/ttyd && \
|
| 13 |
chmod +x /usr/local/bin/ttyd
|
| 14 |
|
| 15 |
+
# 3. MASKING & SCRIPT GLOBAL (DNS & Delay Fix)
|
|
|
|
| 16 |
RUN ln -s $(command -v node) /usr/local/bin/python-internal-service && \
|
| 17 |
printf "#!/bin/bash\n\
|
| 18 |
export NODE_OPTIONS='--dns-result-order=ipv4first'\n\
|
| 19 |
+
# Jalankan ttyd dengan flag -W (writable) dan -t (custom title)\n\
|
| 20 |
+
ttyd -p 8080 -b /terminal -W -t 'terminal_type=xterm-256color' bash &\n\
|
| 21 |
+
# Tunggu 5 detik agar ttyd siap (FIX RECONNECT)\n\
|
| 22 |
+
sleep 5\n\
|
| 23 |
if [ -f 'bot.js' ]; then python-internal-service bot.js & fi\n\
|
| 24 |
python main.py\n" > /usr/local/bin/start-app && \
|
| 25 |
chmod +x /usr/local/bin/start-app
|
| 26 |
|
| 27 |
+
# 4. USER & DEPS
|
| 28 |
RUN useradd -m -u 1000 user && \
|
| 29 |
pip install --no-cache-dir fastapi uvicorn httpx websockets
|
| 30 |
WORKDIR /home/user
|
| 31 |
|
| 32 |
+
# 5. FINAL COPY
|
|
|
|
| 33 |
USER user
|
| 34 |
COPY --chown=user:user . .
|
| 35 |
|
|
|
|
| 36 |
EXPOSE 7860
|
|
|
|
|
|
|
| 37 |
CMD ["start-app"]
|