Docker:如何通过Dockerfile将反向端口添加到sources.list?

use*_*695 7 linux debian docker dockerfile debian-jessie

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

Debian建议使用backports.但是我如何在Dockerfile中执行此操作?

deb http://httpredir.debian.org/debian jessie-backports main non-free
deb-src http://httpredir.debian.org/debian jessie-backports main non-free
Run Code Online (Sandbox Code Playgroud)

/etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

这就是我的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 Code Online (Sandbox Code Playgroud)

Tar*_*ani 16

你可以在下面添加

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
Run Code Online (Sandbox Code Playgroud)


Edu*_*rdo 6

寻找同样的问题,我发现 Debian 提供了backport版本的 Docker 镜像。所以您不需要自己这样做。例如,您可以jessie backports使用命令拥有一个 Dockerfile FROM debian:jessie-backports

通过查看Debian 官方向后移植文件之一如何获得向后移植版本,它可以归结为类似于 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
Run Code Online (Sandbox Code Playgroud)


van*_*oom 5

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

RUN echo 'deb http://deb.debian.org jessie-backports main' >> /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

其他答案创建了一个新的苍蝇,其中/etc/apt/sources.list.d可以,但原始问题是指附加到sources.list. 用于>>附加到文件。