Chaplain0908 commited on
Commit
fbca801
·
verified ·
1 Parent(s): f77b972

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -17
Dockerfile CHANGED
@@ -1,35 +1,27 @@
1
- # 1. 使用官方 Python 3.13 镜像
2
  FROM python:3.13-slim
3
 
4
- # 2. 设置系统环境变量
5
- ENV PYTHONUNBUFFERED=1 \
6
- PYTHONDONTWRITEBYTECODE=1
7
-
8
- # 3. 安装必要的系统工具(防止编译某些 Python 包时出错)
9
  RUN apt-get update && apt-get install -y \
10
- build-essential \
11
- curl \
12
- git \
13
- && rm -rf /var/lib/apt/lists/*
14
 
15
- # 4. 【关键】创建并切换到非 root 用户 (UID 1000)
16
  RUN useradd -m -u 1000 user
17
  USER user
18
  ENV HOME=/home/user \
19
  PATH=/home/user/.local/bin:$PATH
20
  WORKDIR $HOME/app
21
 
22
- # 5. 【关键】单独复制依赖并安装,利用 Docker 缓存层
23
  COPY --chown=user requirements.txt .
 
24
  RUN pip3 install --no-cache-dir --upgrade pip && \
25
  pip3 install --no-cache-dir -r requirements.txt
26
 
27
- # 6. 【关键】将内容复制到容器,并确保权限属于 user
28
- # 注意这里依然保留 src 的层级,后面我们会通过启动参数对齐路径
29
- COPY --chown=user src/ ./src/
30
 
31
- # 7. 暴露 7860 端口
32
  EXPOSE 7860
33
 
34
- # 8. 【关键】启动命令:进入 src 运行,并强制使用 7860
35
  ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=7860", "--server.address=0.0.0.0"]
 
 
1
  FROM python:3.13-slim
2
 
3
+ # 安装必要的系统工具
 
 
 
 
4
  RUN apt-get update && apt-get install -y \
5
+ build-essential curl git && rm -rf /var/lib/apt/lists/*
 
 
 
6
 
7
+ # 必须:创建 UID 1000 的用户
8
  RUN useradd -m -u 1000 user
9
  USER user
10
  ENV HOME=/home/user \
11
  PATH=/home/user/.local/bin:$PATH
12
  WORKDIR $HOME/app
13
 
14
+ # 1. 复制依赖文件尝试安装
15
  COPY --chown=user requirements.txt .
16
+ # 加上 --no-cache-dir 减少体积,避免缓存导致的问题
17
  RUN pip3 install --no-cache-dir --upgrade pip && \
18
  pip3 install --no-cache-dir -r requirements.txt
19
 
20
+ # 2. 复制你的代码目录
21
+ COPY --chown=user . .
 
22
 
23
+ # 必须:使用 7860 端口
24
  EXPOSE 7860
25
 
26
+ # 启动命令:确保路径指向你的脚本
27
  ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=7860", "--server.address=0.0.0.0"]