【发布时间】:2020-06-18 08:29:19
【问题描述】:
我尝试启动一个 docker-container,但出现错误:
错误:服务“客户端”构建失败:命令 '/bin/sh -c apt-get update && apt-get install --yes --no-install-recommends apt-transport-https dirmngr gnupg && mkdir -p /etc/apt/sources.list.d && apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 && echo $repository > /etc/apt/sources.list.d/clickhouse.list && apt -get update && env DEBIAN_FRONTEND=noninteractive apt-get install --allow-unauthenticated --yes --no-install-recommends clickhouse-client=$version clickhouse-common-static=$version locales tzdata && rm -rf /var/ lib/apt/lists/* /var/cache/debconf && apt-get clean' 返回一个非零代码:2
我的码头文件:
FROM ubuntu:18.04
ARG repository="deb http://repo.yandex.ru/clickhouse/deb/stable/ main/"
ARG version=19.*
RUN apt-get update \
&& apt-get install --yes --no-install-recommends \
apt-transport-https \
dirmngr \
gnupg \
&& mkdir -p /etc/apt/sources.list.d \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4 \
&& echo $repository > /etc/apt/sources.list.d/clickhouse.list \
&& apt-get update \
&& env DEBIAN_FRONTEND=noninteractive \
apt-get install --allow-unauthenticated --yes --no-install-recommends \
clickhouse-client=$version \
clickhouse-common-static=$version \
locales \
tzdata \
&& rm -rf /var/lib/apt/lists/* /var/cache/debconf \
&& apt-get clean
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ENTRYPOINT ["/usr/bin/clickhouse-client"]
【问题讨论】:
-
在您的日志中进一步返回 - 失败的命令本身会有一些输出解释出了什么问题。
-
@PaulBecotte 怎么样?我没有容器来查看日志。我试试看。
-
它非常适合我。正如@PaulBecotte 所说,日志有助于了解您的执行环境。
-
我的意思是,docker build 调试。由于存储库访问、兼容性等原因,apt install 中的某些内容似乎失败了……谁知道呢。我会做的是限制 apt 操作来定位问题。所以开始一步一步安装,知道是哪一个导致了rc=2。另外,我会将 apt 操作组合在一起(不包括 mkdir -p 和类似的东西:之前运行)。也许这是 apt-get update 进一步安装的问题。
-
我会将您的 RUN 分为三个部分:首先执行 mkdirs 和 env 分配,然后进行 apt update && 安装(如有必要,进行更多调试),最后进行清理(rm -rf 和 clean)。
标签: docker dockerfile