docker - 使用 python 映像,添加非免费的 Debian 存储库?

Ale*_*exW 3 python debian docker

我在 docker 中使用了一个 python 图像,并添加了一些依赖项,如下所示:

RUN apt-get update -y \
    && apt-get install -y apt-utils libsasl2-dev python3-dev libldap2-dev libssl-dev libsnmp-dev snmp-mibs-downloader
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

E: Package 'snmp-mibs-downloader' has no installation candidate
Run Code Online (Sandbox Code Playgroud)

搜索后是因为我需要一个非免费的repo添加:http : //installion.co.uk/debian/wheezy/non-free/s/snmp-mibs-downloader/install/index.html

我相信我需要编辑 /etc/apt/sources.list 并添加以下内容:

deb http://http.us.debian.org/debian jessie main contrib non-free
deb http://security.debian.org jessie/updates main contrib non-free
Run Code Online (Sandbox Code Playgroud)

但我如何通过 docker 文件做到这一点?

Eva*_*oll 5

虽然这是正确的命令,

sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

如果您打算这样做,您应该将其作为第一张图片其余部分的一部分,

RUN \
  sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list \
  && apt-get -q update                                              \
  && apt-get -qy dist-upgrade                                       \
  && apt-get install -qy foobar                                     \
  && foobar whatever                                                \
  && apt-get -qy --purge remove foobar                              \
  && apt-get clean                                                  \
  && rm -rf /var/lib/apt/lists
Run Code Online (Sandbox Code Playgroud)

上面在完整的流程中显示了这个命令和其余的apt东西。

  • 感谢您发布与版本无关的脚本变体 (3认同)

Ani*_*nis 4

与将non-free组件添加到您的sources.list. 编辑/etc/apt/sources.listDockerfile 中的文件并替换如下所示的行:

deb http://http.us.debian.org/debian jessie main contrib
Run Code Online (Sandbox Code Playgroud)

经过

deb http://http.us.debian.org/debian jessie main contrib non-free
Run Code Online (Sandbox Code Playgroud)

您可以在 Dockerfile 中使用如下命令来执行此操作

sed -i "s#deb http://http.us.debian.org/debian jessie main contrib non-free#deb http://http.us.debian.org/debian jessie main contrib non-free#g" /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

对于 也一样security.debian.org