File size: 1,454 Bytes
914be63 4969821 914be63 4969821 914be63 72688d6 914be63 ba001b6 4969821 ba001b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | FROM python:3.11-slim
# Cài system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
curl wget git build-essential procps htop nano vim \
&& rm -rf /var/lib/apt/lists/*
# Cài Node.js 20
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# Cài Go 1.22
RUN wget -q https://go.dev/dl/go1.22.5.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz \
&& rm go1.22.5.linux-amd64.tar.gz
ENV PATH="/usr/local/go/bin:${PATH}"
ENV GOPATH="/data/go"
ENV ADMIN_API_URL="https://hugpanel-admin.lab70018.workers.dev"
# Tạo user (HF Spaces yêu cầu user 1000)
RUN useradd -m -u 1000 user
ENV HOME=/home/user
ENV PATH="/home/user/.local/bin:${PATH}"
WORKDIR /app
# Cài Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy source code
COPY . .
# Tạo thư mục data
RUN mkdir -p /data/zones && chown -R user:user /data
# Mở port 7860 (mặc định HF Spaces)
EXPOSE 7860
# Tạo startup script sửa DNS rồi chạy app (chạy root rồi chuyển sang user)
RUN printf '#!/bin/sh\n\
printf "nameserver 1.1.1.1\\nnameserver 8.8.8.8\\n" > /etc/resolv.conf 2>/dev/null || true\n\
exec su - user -s /bin/sh -c "cd /app && python app.py"\n' > /app/start.sh && chmod +x /app/start.sh
CMD ["/app/start.sh"]
|