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

Docker构建ClickHouse 21.8.11.4镜像输入密码后卡住如何解决?

问题原因

ClickHouse的deb安装包在安装过程中会触发交互式配置流程,要求输入default用户的密码,而Docker构建过程默认处于非交互模式,无法响应该交互请求,因此会出现构建卡住无响应的问题。

解决方案

修改你的Dockerfile,在安装ClickHouse之前预先配置debconf参数,禁用交互式提示,同时提前设置default用户的密码,修改后的完整Dockerfile如下:

FROM ubuntu:20.04

ENV CH_VERSION 21.8.11.4
# 禁用Debian交互式配置提示
ENV DEBIAN_FRONTEND=noninteractive

RUN \
  # 预先配置ClickHouse default用户密码,如需自定义密码替换下方YOUR_CUSTOM_PASSWORD即可,设置空密码则留空引号内内容
  echo "clickhouse-server clickhouse-server/root_password password YOUR_CUSTOM_PASSWORD" | debconf-set-selections && \
  echo "clickhouse-server clickhouse-server/root_password_again password YOUR_CUSTOM_PASSWORD" | debconf-set-selections && \
  apt-get update && \
  apt-get install --yes --no-install-recommends \
    apt-transport-https \
    apt-utils \
    dirmngr \
    gnupg && \
  apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 && \
  echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" | tee /etc/apt/sources.list.d/clickhouse.list && \
  apt-get update && \
  apt-get install --allow-unauthenticated -y \
    clickhouse-client=${CH_VERSION} \
    clickhouse-server=${CH_VERSION} \
    clickhouse-common-static=${CH_VERSION} \
    libgcc-7-dev \
    tzdata \
    libreadline-dev \
    curl && \
  rm -rf \
    /var/lib/apt/lists/* \
    /var/cache/debconf \
    /tmp/* && \
  apt-get clean

VOLUME /var/lib/clickhouse

RUN chown -R clickhouse /etc/clickhouse-server

USER clickhouse
EXPOSE 9000 8123 9009

ENTRYPOINT exec /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml
额外优化建议
  • 如果你不希望将密码硬编码在Dockerfile中,可以后续在启动容器时挂载自定义的users.xml配置文件,覆盖默认的用户密码配置,安全性更高。
  • 重新执行构建命令docker build -t clickhouse-server:21.8.11.4 .即可正常完成构建,不会再弹出密码输入提示。

内容的提问来源于stack exchange,提问作者Rishabh Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:24:09