StarrySkyWorld commited on
Commit
3efb4fd
·
verified ·
1 Parent(s): 2f53750

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +73 -0
Dockerfile ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.13-slim
2
+
3
+ # 设置环境变量
4
+ ENV PYTHONUNBUFFERED=1 \
5
+ PYTHONDONTWRITEBYTECODE=1 \
6
+ DISPLAY=:99 \
7
+ DEBIAN_FRONTEND=noninteractive
8
+
9
+ # 安装系统依赖和 Chrome
10
+ RUN apt-get update && apt-get install -y --no-install-recommends \
11
+ wget \
12
+ gnupg \
13
+ curl \
14
+ git \
15
+ unzip \
16
+ xvfb \
17
+ fonts-liberation \
18
+ libasound2 \
19
+ libatk-bridge2.0-0 \
20
+ libatk1.0-0 \
21
+ libatspi2.0-0 \
22
+ libcups2 \
23
+ libdbus-1-3 \
24
+ libdrm2 \
25
+ libgbm1 \
26
+ libgtk-3-0 \
27
+ libnspr4 \
28
+ libnss3 \
29
+ libxcomposite1 \
30
+ libxdamage1 \
31
+ libxfixes3 \
32
+ libxkbcommon0 \
33
+ libxrandr2 \
34
+ xdg-utils \
35
+ && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg \
36
+ && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google-chrome.list \
37
+ && apt-get update \
38
+ && apt-get install -y --no-install-recommends google-chrome-stable \
39
+ && apt-get clean \
40
+ && rm -rf /var/lib/apt/lists/*
41
+
42
+ # 安装 uv
43
+ RUN pip install --no-cache-dir uv
44
+
45
+ # 创建非 root 用户(HF Spaces 要求)
46
+ RUN useradd -m -u 1000 user
47
+ USER user
48
+ ENV HOME=/home/user \
49
+ PATH=/home/user/.local/bin:$PATH
50
+
51
+ # 设置工作目录
52
+ WORKDIR $HOME/app
53
+
54
+ # 克隆最新代码
55
+ RUN git clone --depth 1 https://github.com/Starry-Sky-World/gar.git .
56
+
57
+ # 进入 py 目录
58
+ WORKDIR $HOME/app/py
59
+
60
+ # 安装 Python 依赖
61
+ RUN uv sync --frozen
62
+
63
+ # 复制配置模板(如果存在)
64
+ RUN cp config.example.yaml config.yaml 2>/dev/null || true
65
+
66
+ # 暴露端口(HF Spaces 默认 7860)
67
+ EXPOSE 7860
68
+
69
+ # 启动脚本
70
+ COPY --chown=user:user start.sh /home/user/app/start.sh
71
+ RUN chmod +x /home/user/app/start.sh
72
+
73
+ CMD ["/home/user/app/start.sh"]