2017-12-30 57 views
-1

Ich versuche, ffmpeg 3 über add-apt-repository in meinem Docker-Container zu installieren, und die Quelle, die ich verwende, ist this. Ich habe verwendet ubuntu: treu in meinem Docker Container doch wenn ich apt-get update versuchen, ist die abgerufene Quelle nicht vertrauenswürdig, aber jessie, die es nicht gibt:add-apt-repository sucht nach 'jessy' statt 'trusty' Version der Quelle

W: Fehler http://ppa.launchpad.net/mc3man/trusty-media/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found zu holen. Hier

ist das Protokoll meiner Build:

---> Running in 7db074d1f86f 
Hit http://security.debian.org jessie/updates InRelease 
Ign http://ppa.launchpad.net jessie InRelease 
Ign http://deb.debian.org jessie InRelease 
Hit http://deb.debian.org jessie-updates InRelease 
Hit http://deb.debian.org jessie Release.gpg 
Ign http://ppa.launchpad.net jessie Release.gpg 
Hit http://deb.debian.org jessie Release 
Ign http://ppa.launchpad.net jessie Release 
Err http://ppa.launchpad.net jessie/main amd64 Packages 

Get:1 http://security.debian.org jessie/updates/main amd64 Packages [599 kB] 
Err http://ppa.launchpad.net jessie/main amd64 Packages 

Err http://ppa.launchpad.net jessie/main amd64 Packages 

Err http://ppa.launchpad.net jessie/main amd64 Packages 

Get:2 http://deb.debian.org jessie-updates/main amd64 Packages [23.1 kB] 
Err http://ppa.launchpad.net jessie/main amd64 Packages 
    404 Not Found 
Get:3 http://deb.debian.org jessie/main amd64 Packages [9064 kB] 
Fetched 9686 kB in 14s (676 kB/s) 
W: Failed to fetch http://ppa.launchpad.net/mc3man/trusty-media/ubuntu/dists/jessie/main/binary-amd64/Packages 404 Not Found 

E: Some index files failed to download. They have been ignored, or old ones used instead. 

Hier ist meine Dockerfile:

FROM ubuntu:trusty 
FROM node 
RUN apt-get -y update 
RUN apt-get -y install software-properties-common python-software-properties 
RUN apt-get -y update 
RUN add-apt-repository ppa:mc3man/trusty-media 
RUN apt-get -y update 
RUN apt-get -y install ffmpeg 
RUN apt-get -y update 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 
COPY package.json /usr/src/app 
RUN npm install 
COPY . /usr/src/app 
RUN npm run build 
ENV NODE_ENV production 
EXPOSE 8000 
CMD ["npm", "run", "start:prod"] 
+1

Keine Programmierfrage; Wählen, um als Off-Topic für Stack Overflow zu schließen. Fragen Sie vielleicht stattdessen unter [ubuntu.se], aber sie werden (zu) Ihre vollständigen 'sources.list' und' sources.list.d' sehen wollen, um herauszufinden, woher die Debian-Einträge kommen. – tripleee

+1

Ich empfehle Ihnen, die [Best Practices] (https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run) vom Andockfenster aus zu überprüfen, insbesondere im Abschnitt "RUN" von Dockerfile. Sie haben einige 'apt-get'-Zeilen, die ohne Warnung brechen könnten. – BMitch

Antwort

2
FROM ubuntu:trusty 
FROM node 
RUN ... 

Ihre Befehle laufen nicht auf einem "ubuntu: treu" Bild, Sie werden auf einem "Knoten: neueste" Image ausgeführt. Sie haben in der ersten Stufe einen mehrstufigen Build ohne Befehle erstellt, nur einen großen Image-Download.

Das Bild "node: latest", das Sie verwenden, basiert auf "buildpack-deps: jessie" as seen in thier Dockerfile. Und wenn Sie dem genügend folgen, finden Sie "debian: jessie" in einer parent Dockerfile.

Sie müssen entweder Ihr Basis-Image oder Ihr Repository, das Sie hinzufügen, so ändern, dass sie übereinstimmen.

+0

Ich lerne gerade Docker, also habe ich die Tatsache übersehen, dass Sie darauf hingewiesen haben. Vielen Dank, ich werde die Best Practices durchgehen, wie Sie es empfehlen! –

Verwandte Themen