Docker:如何通过 Docker 文件向 sources.list 添加向后移植?

Docker: How to add backports to sources.list via Dockerfile?

我需要通过 Dockerfile 在 debian jessie 上安装 ffmeg

Debian 建议使用反向移植。但是如何在我的 Dockerfile 中执行此操作?

添加

deb http://httpredir.debian.org/debian jessie-backports main non-free
deb-src http://httpredir.debian.org/debian jessie-backports main non-free

/etc/apt/sources.list

这是我的 Dockerfile 的样子:

FROM node:4.8-slim

COPY . /

## How to add backports to list ???

RUN apt-get update && apt-get install ffmpeg && ffmpeg -i

RUN (cd programs/server && npm install --silent)
CMD ["node", "main.js"]

您可以在下面添加

RUN printf "deb http://httpredir.debian.org/debian jessie-backports main non-free\ndeb-src http://httpredir.debian.org/debian jessie-backports main non-free" > /etc/apt/sources.list.d/backports.list

寻找相同的问题,我发现 Debian 为 backport 版本提供了 Docker 图像。所以你不需要自己做。例如,您可以使用 FROM debian:jessie-backports 命令获得 jessie backports Docker 文件。

通过查看 one of the Debian official backport files do 的反向移植版本,它归结为类似于 Tarun 的 asnwer 的东西,使用基本分布然后将反向移植附加到特定的 backports.list,即:

FROM debian:jessie
RUN echo 'deb http://deb.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list

在 Ubuntu 20.04 上测试,附加到 sources.list 时需要 >>

RUN echo 'deb http://deb.debian.org jessie-backports main' >> /etc/apt/sources.list

其他答案在 /etc/apt/sources.list.d 中创建了一个新的 flie 没关系,但原始问题是指附加到 sources.list。使用 >> 附加到文件。