Spaces:
Runtime error
Runtime error
Update Dockerfile
Browse files- 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
|
| 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"]
|