exable324 commited on
Commit
b13b624
·
verified ·
1 Parent(s): 7387887

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +16 -14
Dockerfile CHANGED
@@ -1,13 +1,10 @@
1
- # Stage 1: 克隆源码并构建前端
2
  FROM node:20-slim AS builder
3
  RUN apt-get update && apt-get install -y git
4
  WORKDIR /build
5
- # 克隆项目源码
6
  RUN git clone https://github.com/Dreamy-rain/gemini-business2api.git .
7
- # 构建前端
8
  WORKDIR /build/frontend
9
- RUN npm install
10
- RUN npm run build
11
 
12
  # Stage 2: 最终运行环境
13
  FROM python:3.11-slim
@@ -17,13 +14,14 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
17
  PYTHONUNBUFFERED=1 \
18
  TZ=Asia/Shanghai \
19
  HOME=/home/user \
20
- PATH=/home/user/.local/bin:$PATH
 
21
 
22
- # 创建一个非 root 用户 (Hugging Face 强制要求 UID 1000)
23
  RUN useradd -m -u 1000 user
24
  WORKDIR $HOME/app
25
 
26
- # 安装系统依赖 (包括 Chromium 和驱动)
27
  USER root
28
  RUN apt-get update && \
29
  apt-get install -y --no-install-recommends \
@@ -34,22 +32,26 @@ RUN apt-get update && \
34
  libcairo2 fonts-liberation fonts-noto-cjk && \
35
  apt-get clean && rm -rf /var/lib/apt/lists/*
36
 
37
- # builder 阶段制所有文件
 
 
 
 
 
 
38
  COPY --from=builder --chown=user /build $HOME/app
39
 
40
- # 切换非 root 用户执行安装
41
  USER user
42
 
43
  # 安装 Python 依赖
44
  RUN pip install --no-cache-dir -r requirements.txt
45
 
46
- # 确保数据目录可写
47
  RUN mkdir -p $HOME/app/data && chmod 777 $HOME/app/data
48
-
49
- # 暴露端口 (HF 默认也是 7860)
50
  EXPOSE 7860
51
 
52
- # 赋予启动脚本执行权限
53
  RUN chmod +x entrypoint.sh
54
 
55
  # 启动命令
 
1
+ # Stage 1: 构建前端
2
  FROM node:20-slim AS builder
3
  RUN apt-get update && apt-get install -y git
4
  WORKDIR /build
 
5
  RUN git clone https://github.com/Dreamy-rain/gemini-business2api.git .
 
6
  WORKDIR /build/frontend
7
+ RUN npm install && npm run build
 
8
 
9
  # Stage 2: 最终运行环境
10
  FROM python:3.11-slim
 
14
  PYTHONUNBUFFERED=1 \
15
  TZ=Asia/Shanghai \
16
  HOME=/home/user \
17
+ PATH=/home/user/.local/bin:$PATH \
18
+ CHROME_PATH=/usr/bin/chromium
19
 
20
+ # 创建 HF 强制要求的非 root 用户
21
  RUN useradd -m -u 1000 user
22
  WORKDIR $HOME/app
23
 
24
+ # 安装 Chromium 及其所有依赖环境
25
  USER root
26
  RUN apt-get update && \
27
  apt-get install -y --no-install-recommends \
 
32
  libcairo2 fonts-liberation fonts-noto-cjk && \
33
  apt-get clean && rm -rf /var/lib/apt/lists/*
34
 
35
+ # --- 核心修步骤:创建 Chromium 包装脚本 ---
36
+ # 这会强制所有调用 chromium 的操作都带上必要的参数
37
+ RUN mv /usr/bin/chromium /usr/bin/chromium-orig && \
38
+ printf '#!/bin/bash\n/usr/bin/chromium-orig --no-sandbox --headless=new --disable-gpu --disable-dev-shm-usage --remote-debugging-port=10925 "$@"' > /usr/bin/chromium && \
39
+ chmod +x /usr/bin/chromium
40
+
41
+ # 复制项目文件
42
  COPY --from=builder --chown=user /build $HOME/app
43
 
44
+ # 切换非 root 用户
45
  USER user
46
 
47
  # 安装 Python 依赖
48
  RUN pip install --no-cache-dir -r requirements.txt
49
 
50
+ # 确保目录权限和端口暴露
51
  RUN mkdir -p $HOME/app/data && chmod 777 $HOME/app/data
 
 
52
  EXPOSE 7860
53
 
54
+ # 赋予启动脚本权限
55
  RUN chmod +x entrypoint.sh
56
 
57
  # 启动命令