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

21,269

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.

Share:
21,269
user3142695
Author by

user3142695

People who say nothing is impossible should try gargling with their mouths closed.

Updated on October 05, 2021

Comments

  • user3142695
    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
    Wildhammer almost 2 years
    doing this with docker exec -it -u root ... gives me Permission denied