使用debian:stretch-slim与Docker一起安装csvtk时出现问题

使用debian:stretch-slim与Docker一起安装csvtk时出现问题,docker,debian-stretch,Docker,Debian Stretch,我是Docker的新手,我正在尝试使用debian:stretch-slim通过Docker安装csvtk 下面是我的Dockerfile 它在csvtk步骤失败,并显示以下错误消息: Step 3/3 : RUN wget -qO- https://github.com/shenwei356/csvtk/releases/download/v0.23.0/csvtk_linux_amd64.tar.gz | tar -xz && cp csvtk /usr/local

我是Docker的新手,我正在尝试使用debian:stretch-slim通过Docker安装csvtk

下面是我的Dockerfile

它在csvtk步骤失败,并显示以下错误消息:

Step 3/3 : RUN wget -qO- https://github.com/shenwei356/csvtk/releases/download/v0.23.0/csvtk_linux_amd64.tar.gz | tar -xz      && cp csvtk /usr/local/bin/
 ---> Running in 0f3a0e75a5de

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
The command '/bin/sh -c wget -qO- https://github.com/shenwei356/csvtk/releases/download/v0.23.0/csvtk_linux_amd64.tar.gz | tar -xz      && cp csvtk /usr/local/bin/' returned a non-zero code: 2
如有任何帮助/建议,我将不胜感激

提前感谢。

wget正在退出,错误代码表示wget上的5 SSL验证失败。从,您只需要在wget之前安装ca证书

此Dockerfile应成功生成:

FROM debian:stretch-slim
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    jq                 \
    perl               \
    python3            \
    wget               \
    # added this package to help with ssl certs in Docker
    ca-certificates    \
    && rm -rf /var/lib/apt/lists/*

RUN wget -qO- https://github.com/shenwei356/csvtk/releases/download/v0.23.0/csvtk_linux_amd64.tar.gz | tar -xz \
     && cp csvtk /usr/local/bin/
作为调试此类问题时的一般提示,从Dockerfile中删除有问题的运行行,然后尝试在shell中构建和运行容器,并手动执行所需的命令可能是最容易的。像这样:

docker构建-t测试:v1。 docker运行-rm-it测试:v1/bin/bash 手动运行命令并检查完整的错误输出 将不同的运行指令与&&结合使用是减少映像层数量的最佳做法,但在构建时很难进行调试。

wget退出时出现错误代码,这意味着wget上的5 SSL验证失败。从,您只需要在wget之前安装ca证书

此Dockerfile应成功生成:

FROM debian:stretch-slim
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
    jq                 \
    perl               \
    python3            \
    wget               \
    # added this package to help with ssl certs in Docker
    ca-certificates    \
    && rm -rf /var/lib/apt/lists/*

RUN wget -qO- https://github.com/shenwei356/csvtk/releases/download/v0.23.0/csvtk_linux_amd64.tar.gz | tar -xz \
     && cp csvtk /usr/local/bin/
作为调试此类问题时的一般提示,从Dockerfile中删除有问题的运行行,然后尝试在shell中构建和运行容器,并手动执行所需的命令可能是最容易的。像这样:

docker构建-t测试:v1。 docker运行-rm-it测试:v1/bin/bash 手动运行命令并检查完整的错误输出 将不同的运行指令与&&相结合是减少图像层数量的最佳实践,但在构建时很难进行调试