Docker容器可以';t构建

Docker容器可以';t构建,docker,dockerfile,Docker,Dockerfile,我尝试启动docker容器,但出现错误: 错误:服务“client”无法生成:命令“/bin/sh-c apt get update&&apt get install--yes--no install建议apt传输https dirmngr gnupg&&mkdir-p/etc/apt/sources.list.d&&apt key adv--keyserver keyserver.ubuntu.com--recv E0C56BD4&&echo$repository>/etc/apt/sourc

我尝试启动docker容器,但出现错误:

错误:服务“client”无法生成:命令“/bin/sh-c apt get update&&apt get install--yes--no install建议apt传输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=非交互式apt-get-install--允许未经身份验证--是--否安装建议clickhouse客户端=$version clickhouse common-static=$version locales-tzdata&&rm-rf/var/lib/apt/list/*/var/cache/debconf&&apt get clean'返回一个非零代码:2

我的dockerfile:

    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"]

我不知道为什么,但问题就在这里:

apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4.
它正在工作:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4

在您的日志中再往回看—失败的命令本身会有一些输出解释出了什么问题。@PaulBecotte怎么做的?我没有看到日志。我试着去做,它对我非常有效。正如@PaulBecotte所说,日志将有助于理解您的执行上下文。我的意思是,docker build调试。似乎apt安装中的某些内容由于存储库访问、兼容性。。。谁知道呢。我要做的是限制apt操作以定位问题。因此,开始一步一步地安装,以了解是哪一个导致rc=2。此外,我会将apt操作分组在一起(排除mkdir-p和类似的东西:在之前运行它)。也许这是apt get update进一步安装的问题。我将把您的运行分为三个部分:首先执行mkdirs和env分配,然后执行apt更新和安装(必要时进行更多的中断以进行调试),最后执行清理(rm-rf和clean)。