使用 debian:stretch-slim 安装带有 Docker 的 csvtk 时出现问题
Problems installing csvtk with Docker using debian:stretch-slim
我是 Docker 的新手,我正在尝试使用 debian:stretch-slim
.
通过 Docker 安装 csvtk
下面是我的Dockerfile
FROM debian:stretch-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
jq \
perl \
python3 \
wget \
&& 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/
它在 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
我将不胜感激 help/suggestions。
提前致谢。
wget
正在退出,错误代码表示 wget 上的 5 SSL 验证失败。从 开始,您只需要在 wget
.
之前安装 ca-certificates
此 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 中删除有问题的 RUN
行,然后尝试在 shell 中构建和 运行 容器并手动执行你想要的命令。像这样:
docker build -t test:v1 .
docker run --rm -it test:v1 /bin/bash
# run commands manually and check the full error output
虽然将不同的 RUN
指令与 &&
组合是减少图像层数的最佳做法,但构建时很难调试。
我是 Docker 的新手,我正在尝试使用 debian:stretch-slim
.
csvtk
下面是我的Dockerfile
FROM debian:stretch-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
jq \
perl \
python3 \
wget \
&& 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/
它在 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
我将不胜感激 help/suggestions。
提前致谢。
wget
正在退出,错误代码表示 wget 上的 5 SSL 验证失败。从 wget
.
ca-certificates
此 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 中删除有问题的 RUN
行,然后尝试在 shell 中构建和 运行 容器并手动执行你想要的命令。像这样:
docker build -t test:v1 .
docker run --rm -it test:v1 /bin/bash
# run commands manually and check the full error output
虽然将不同的 RUN
指令与 &&
组合是减少图像层数的最佳做法,但构建时很难调试。