hins111 commited on
Commit
98aba4d
·
verified ·
1 Parent(s): 8b1c907

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +29 -40
Dockerfile CHANGED
@@ -1,47 +1,36 @@
1
- # 使用一个包含 Python 和 Debian Buster 的基础镜像
2
- FROM python:3.9-slim-buster
 
3
 
4
- # 设置工作目录
5
  WORKDIR /app
6
 
7
- # 安装必要的系统依赖,尤其是 Chromium 及其运行所需的库
8
- # 这里使用 apt-get 安装 Chromium,如果你需要特定版本或其他浏览器,请调整
9
- RUN apt-get update && apt-get install -y \
10
- chromium \
11
- chromium-driver \
12
- # 以下是一些常见的浏览器自动化依赖
13
- libnss3 \
14
- libnspr4 \
15
- libatk1.0-0 \
16
- libatk-bridge2.0-0 \
17
- libcups2 \
18
- libdrm-dev \
19
- libgbm-dev \
20
- libgtk-3-0 \
21
- libxkbcommon-x11-0 \
22
- libxcomposite1 \
23
- libxdamage1 \
24
- libxfixes3 \
25
- libxrandr2 \
26
- libxtst6 \
27
- fonts-liberation \
28
- xdg-utils \
29
- --no-install-recommends && \
30
- rm -rf /var/lib/apt/lists/*
31
-
32
- # 复制 requirements.txt 并安装 Python 依赖
33
- COPY requirements.txt .
34
- RUN pip install --no-cache-dir -r requirements.txt
35
 
36
- # 复制所有项目文件到容器中
37
  COPY . .
38
 
39
- # 确保 server.py 监听 0.0.0.0 和一个可配置的端口
40
- # Hugging Face Spaces 通常会将端口暴露在 PORT 环境变量中
41
- # 在你的 server.py 中,确保 Flask 应用绑定到 os.environ.get('PORT', 5000)
42
- # 例如:app.run(host='0.0.0.0', port=os.environ.get('PORT', 5000))
43
- # 假设你的 server.py 内部已经处理了 PORT 环境变量
44
- EXPOSE 5000
 
 
 
 
 
 
 
 
 
45
 
46
- # 定义容器启动时运行的命令
47
- CMD ["python", "server.py"]
 
 
 
 
1
+ # 1. 基础镜像:使用一个现代、轻量的 Python 环境
2
+ FROM python:3.11-slim
3
+ ENV PYTHONUNBUFFERED=1
4
 
5
+ # 2. 设置工作目录
6
  WORKDIR /app
7
 
8
+ # 3. 安装系统依赖:xvfb 用于虚拟显示,这对于在服务器上运行浏览器至关重要
9
+ RUN apt-get update && apt-get install -y --no-install-recommends \
10
+ xvfb \
11
+ && rm -rf /var/lib/apt/lists/*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
+ # 4. 复制整个项目代码到容器中
14
  COPY . .
15
 
16
+ # 5. 安装所有 Python 依赖
17
+ # - 使用引号确保 camoufox[geoip] 被正确解析
18
+ # - --no-cache-dir 减小镜像体积
19
+ RUN pip install --no-cache-dir -U "camoufox[geoip]"
20
+ RUN pip install --no-cache-dir -r requirements.txt
21
+
22
+ # 6. 安装 Playwright 运行所需的系统级依赖
23
+ # 这个命令会由 Playwright 自动安装所有必需的库
24
+ RUN playwright install-deps firefox
25
+
26
+ # 7. 下载 Camoufox 修改版的 Firefox 浏览器
27
+ RUN camoufox fetch
28
+
29
+ # 8. 暴露应用程序端口(根据项目文档,默认为 2048)
30
+ EXPOSE 2048
31
 
32
+ # 9. 定义容器启动时执行的命令
33
+ # --host 0.0.0.0 是在 Docker 中运行网络服务所必需的
34
+ # --virtual-display 使用我们安装的 xvfb
35
+ # --headless 在没有图形界面的服务器上运行
36
+ CMD ["python", "launch_camoufox.py", "--headless", "--virtual-display", "--host", "0.0.0.0", "--port", "2048"]