ACCA225 commited on
Commit
f057c25
·
verified ·
1 Parent(s): 06112bf

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +5 -8
Dockerfile CHANGED
@@ -5,7 +5,7 @@ FROM nvidia/cuda:12.5.1-cudnn-devel-ubuntu20.04
5
  ENV DEBIAN_FRONTEND=noninteractive \
6
  TZ=Europe/Paris
7
 
8
- # 安装基础工具,并额外安装 dos2unix mount 工具集
9
  RUN rm -f /etc/apt/sources.list.d/*.list && \
10
  apt-get update && apt-get install -y --no-install-recommends \
11
  curl \
@@ -26,6 +26,7 @@ RUN rm -f /etc/apt/sources.list.d/*.list && \
26
  software-properties-common \
27
  dos2unix \
28
  mount \
 
29
  && rm -rf /var/lib/apt/lists/*
30
 
31
  # 安装 nvtop
@@ -67,14 +68,14 @@ RUN --mount=target=requirements.txt,source=requirements.txt \
67
  # 1. 复制所有文件
68
  COPY . $HOME/app
69
 
70
- # 2. 【调试步骤一】检查刚复制进来的文件权限和内容,绝不省略!
71
  RUN echo "--- [DEBUG] 步骤1:检查 COPY 后的文件状态 ---" && \
72
  ls -la $HOME/app && \
73
  echo "--- [DEBUG] 检查 start_server.sh 的文件类型和换行符 ---" && \
74
  file $HOME/app/start_server.sh && \
75
  head -n 1 $HOME/app/start_server.sh | cat -A
76
 
77
- # 3. 修复潜在的换行符问题,并强制赋予执行权限(作为最佳实践)
78
  RUN echo "--- [FIX] 步骤2:修复换行符并设置执行权限 ---" && \
79
  dos2unix $HOME/app/start_server.sh && \
80
  chmod +x $HOME/app/start_server.sh
@@ -83,15 +84,12 @@ RUN echo "--- [FIX] 步骤2:修复换行符并设置执行权限 ---" && \
83
  RUN echo "--- [DEBUG] 步骤3:最终确认文件权限 ---" && \
84
  ls -la $HOME/app
85
 
86
- # 5. 【调试步骤三】检查文件系统的挂载选项,排查 noexec 问题
87
- RUN echo "--- [DEBUG] 步骤4:检查 /root/app 的挂载选项 ---" && \
88
- mount | grep " /"
89
 
90
  # --- 调试结束 ---
91
 
92
  # (可选) 复制自定义登录页
93
  # 如果你没有这个文件,可以注释掉下面这行
94
- COPY login.html /opt/conda/lib/python3.9/site-packages/jupyter_server/templates/login.html
95
 
96
  # 设置环境变量
97
  ENV PYTHONUNBUFFERED=1 \
@@ -103,5 +101,4 @@ ENV PYTHONUNBUFFERED=1 \
103
  SHELL=/bin/bash
104
 
105
  # --- 最终执行方案:使用 bash 解释器直接执行 ---
106
- # 这是最可靠的方法,因为它不要求脚本文件本身有执行权限,只需要读权限。
107
  CMD ["/bin/bash", "./start_server.sh"]
 
5
  ENV DEBIAN_FRONTEND=noninteractive \
6
  TZ=Europe/Paris
7
 
8
+ # 安装基础工具,并额外安装 dos2unix, mount, 和【关键修正】file
9
  RUN rm -f /etc/apt/sources.list.d/*.list && \
10
  apt-get update && apt-get install -y --no-install-recommends \
11
  curl \
 
26
  software-properties-common \
27
  dos2unix \
28
  mount \
29
+ file \
30
  && rm -rf /var/lib/apt/lists/*
31
 
32
  # 安装 nvtop
 
68
  # 1. 复制所有文件
69
  COPY . $HOME/app
70
 
71
+ # 2. 【调试步骤一】检查刚复制进来的文件权限和内容
72
  RUN echo "--- [DEBUG] 步骤1:检查 COPY 后的文件状态 ---" && \
73
  ls -la $HOME/app && \
74
  echo "--- [DEBUG] 检查 start_server.sh 的文件类型和换行符 ---" && \
75
  file $HOME/app/start_server.sh && \
76
  head -n 1 $HOME/app/start_server.sh | cat -A
77
 
78
+ # 3. 修复潜在的换行符问题,并强制赋予执行权限
79
  RUN echo "--- [FIX] 步骤2:修复换行符并设置执行权限 ---" && \
80
  dos2unix $HOME/app/start_server.sh && \
81
  chmod +x $HOME/app/start_server.sh
 
84
  RUN echo "--- [DEBUG] 步骤3:最终确认文件权限 ---" && \
85
  ls -la $HOME/app
86
 
 
 
 
87
 
88
  # --- 调试结束 ---
89
 
90
  # (可选) 复制自定义登录页
91
  # 如果你没有这个文件,可以注释掉下面这行
92
+ # COPY login.html /opt/conda/lib/python3.9/site-packages/jupyter_server/templates/login.html
93
 
94
  # 设置环境变量
95
  ENV PYTHONUNBUFFERED=1 \
 
101
  SHELL=/bin/bash
102
 
103
  # --- 最终执行方案:使用 bash 解释器直接执行 ---
 
104
  CMD ["/bin/bash", "./start_server.sh"]