我们的 Dockerfile 用作FROM python:3.7-slim-buster
基础镜像。我们的 dockerfile 中的一行是RUN apt-get install jq -y
.当我们执行这个镜像构建的正在运行的容器时,我们得到:
jq --version
jq-1.5-1-a5b5cbe
每https://stedolan.github.io/jq/,版本 1.6 于 2018 年发布,我们希望在我们的应用程序中使用 1.6。当我们尝试时:
RUN apt-get install jq=1.6.0 -y
或者RUN apt-get install jq=1.6 -y
,我们遇到了错误E: Version '1.6.0' for 'jq' was not found
和E: Version '1.6' for 'jq' was not found
当我jq --version
在 Mac 上本地运行时,我收到jq-1.6
.我们如何为我们的 docker 镜像获取 1.6 版本?
答案1
如果您想要jq
基于 Debian 10 的映像中的 1.6,最简单的选择是下载该项目提供的静态链接版本:
RUN curl -L -o /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.6/jq-linux64
您可能需要curl
先安装(使用apt
)。
在 中安装非打包的二进制文件通常是一种很糟糕的形式/usr/bin
,但我倾向于认为在容器映像中这不是一个问题......