Dockerfile安装CUDA时卡在键盘来源输入,如何设置非交互式环境?
解决Docker安装CUDA卡在键盘原产国配置的问题
关键问题分析
卡在键盘配置环节是因为CUDA安装依赖的keyboard-configuration包触发了交互式配置,即使设置DEBIAN_FRONTEND=noninteractive,也可能因为以下原因失效:
- Docker容器内默认是root用户,无需
sudo,使用sudo会重置环境变量,导致DEBIAN_FRONTEND不生效 - 未提前预配置键盘相关的debconf参数
修改后的Dockerfile
FROM ubuntu:22.04 WORKDIR /app RUN echo "Hello World!" # 提前预配置键盘选项,避免交互式提问 RUN apt-get update && apt-get install -y --no-install-recommends \ debconf-utils \ && echo "keyboard-configuration keyboard-configuration/layoutcode string us" | debconf-set-selections \ && echo "keyboard-configuration keyboard-configuration/variantcode string" | debconf-set-selections \ && echo "keyboard-configuration keyboard-configuration/modelcode string pc105" | debconf-set-selections \ && echo "keyboard-configuration keyboard-configuration/country string USA" | debconf-set-selections # 全局设置非交互式前端 ENV DEBIAN_FRONTEND=noninteractive # 安装基础依赖(去掉sudo,默认是root) RUN apt-get install -y --no-install-recommends \ libosmesa6-dev \ wget \ curl \ unzip \ gcc \ g++ \ && rm -rf /var/lib/apt/lists/* # 添加CUDA源并安装(去掉sudo) RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin \ && mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600 \ && wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb \ && dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb \ && cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ \ && apt-get update RUN apt-get -y install --no-install-recommends cuda \ && rm -rf /var/lib/apt/lists/* \ && rm -rf cuda-ubuntu2204.pin \ && rm -rf cuda-repo-ubuntu2204-12-2-local_12.2.0-535.54.03-1_amd64.deb
核心改动点
- 移除所有
sudo命令:Docker容器默认以root身份运行,不需要sudo,避免环境变量被重置 - 提前用
debconf-set-selections预配置键盘参数,直接指定键盘布局为美式英语(可根据需求修改为其他地区,比如cn对应中文) - 使用
--no-install-recommends减少不必要的依赖安装,同时避免触发更多交互式配置 - 确保
DEBIAN_FRONTEND=noninteractive全局生效,覆盖所有apt操作环节
构建命令
docker build -t tbd_jax:latest .
内容的提问来源于stack exchange,提问作者desert_ranger
相关产品推荐
相关产品推荐

