File size: 1,262 Bytes
98aba4d
 
 
8b1c907
98aba4d
8b1c907
 
98aba4d
 
 
 
8b1c907
98aba4d
8b1c907
 
98aba4d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8b1c907
98aba4d
 
 
 
8c1e978
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
# 1. 基础镜像:使用一个现代、轻量的 Python 环境
FROM python:3.11-slim
ENV PYTHONUNBUFFERED=1

# 2. 设置工作目录
WORKDIR /app

# 3. 安装系统依赖:xvfb 用于虚拟显示,这对于在服务器上运行浏览器至关重要
RUN apt-get update && apt-get install -y --no-install-recommends \
    xvfb \
    && rm -rf /var/lib/apt/lists/*

# 4. 复制整个项目代码到容器中
COPY . .

# 5. 安装所有 Python 依赖
#    - 使用引号确保 camoufox[geoip] 被正确解析
#    - --no-cache-dir 减小镜像体积
RUN pip install --no-cache-dir -U "camoufox[geoip]"
RUN pip install --no-cache-dir -r requirements.txt

# 6. 安装 Playwright 运行所需的系统级依赖
#    这个命令会由 Playwright 自动安装所有必需的库
RUN playwright install-deps firefox

# 7. 下载 Camoufox 修改版的 Firefox 浏览器
RUN camoufox fetch

# 8. 暴露应用程序端口(根据项目文档,默认为 2048)
EXPOSE 2048

# 9. 定义容器启动时执行的命令
#    --host 0.0.0.0 是在 Docker 中运行网络服务所必需的
#    --virtual-display 使用我们安装的 xvfb
#    --headless 在没有图形界面的服务器上运行
CMD ["python", "launch_camoufox.py", "--headless", "--server-port", "2048"]