You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 03:22:10