Docker: How to add backports to sources.list via Dockerfile?
Solution 1
You can do it by adding below
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
Solution 2
Looking for the same issue I have seen that Debian provides Docker images for backport
versions. So you do not need to do that yourself. For instance you can have a jessie backports
Dockerfile using FROM debian:jessie-backports
command.
By looking at what one of the Debian official backport files do to have the backport version it boils down to something similar to what Tarun's asnwer, using the base distribution then appending the backports to a specific backports.list
, i.e.:
FROM debian:jessie
RUN echo 'deb http://deb.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list
Solution 3
Tested on Ubuntu 20.04, >>
is required when appending to sources.list.
RUN echo 'deb http://deb.debian.org jessie-backports main' >> /etc/apt/sources.list
Other answers create a new flie in /etc/apt/sources.list.d
which is OK, but the original question refers to appending to sources.list
. Use >>
to append to a file.
user3142695
People who say nothing is impossible should try gargling with their mouths closed.
Updated on October 05, 2021Comments
-
user3142695 over 2 years
I need to install
ffmeg
on debian jessie via Dockerfile.Debian recommends to use backports. But how do I do this in my Dockerfile?
Add
deb http://httpredir.debian.org/debian jessie-backports main non-free deb-src http://httpredir.debian.org/debian jessie-backports main non-free
to
/etc/apt/sources.list
This is how my Dockerfile looks like:
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"]
-
Wildhammer almost 2 yearsdoing this with
docker exec -it -u root ...
gives mePermission denied