apt-add-repository: Befehl nicht gefunden Fehler in Dockerfile


91

Ich habe gerade eine sehr einfache Docker-Datei in meinem Terminal erstellt. Im Grunde habe ich Folgendes getan:

mkdir pgrouted
cd pgrouted
touch Dockerfile

Jetzt öffne ich die Docker-Datei im Nano- Editor und füge der Docker-Datei die folgenden Befehle hinzu:

FROM ubuntu

MAINTAINER Gautam <gautamx07@yahoo.com>

LABEL Description="pgrouting excercise" Vendor="skanatek" Version="1.0"

ENV BBOX="-122.8,45.4,-122.5,45.6"

# Add pgRouting launchpad repository
RUN sudo apt-add-repository -y ppa:ubuntugis/ppa
RUN sudo apt-add-repository -y ppa:georepublic/pgrouting
RUN sudo apt-get update

# Install pgRouting package (for Ubuntu 14.04)
RUN sudo apt-get install postgresql-9.3-pgrouting

# Install osm2pgrouting package
RUN sudo apt-get install osm2pgrouting

# Install workshop material (optional, but maybe slightly outdated)
RUN sudo apt-get install pgrouting-workshop

# For workshops at conferences and events:
# Download and install from http://trac.osgeo.org/osgeo/wiki/Live_GIS_Workshop_Install
RUN wget --no-check-certificate https://launchpad.net/~georepublic/+archive/pgrouting/+files/pgrouting-workshop_2.0.6-ppa1_all.deb

RUN sudo dpkg -i pgrouting-workshop_2.0.6-ppa1_all.deb

# Review: Not sure weather this should be in the dockerfile
RUN cp -R /usr/share/pgrouting/workshop ~/Desktop/pgrouting-workshop

# Log in as user "user"
RUN psql -U postgres

# Create routing database
RUN CREATE DATABASE routing;

# Add PostGIS functions
RUN CREATE EXTENSION postgis;

# Add pgRouting core functions
CREATE EXTENSION pgrouting;

# Download using Overpass XAPI (larger extracts possible than with default OSM API)
wget --progress=dot:mega -O "sampledata.osm" "http://www.overpass-api.de/api/xapi?*[bbox=${BBOX}][@meta]"

Das gesamte Dockerfile ist HIER auf einen Blick zu sehen.

Wenn ich nun versuche, die Docker-Datei so zu erstellen:

docker build -t gautam/pgrouted:v1 .

Die Docker-Datei wird ausgeführt und dann wird der folgende Fehler angezeigt:

Step 4 : RUN sudo apt-add-repository -y ppa:ubuntugis/ppa
 ---> Running in c93c3c5fd5e8
sudo: apt-add-repository: command not found
The command '/bin/sh -c sudo apt-add-repository -y ppa:ubuntugis/ppa' returned a non-zero code: 1

Warum erhalte ich diesen Fehler?

Antworten:


120

apt-add-repository befindet sich einfach nicht im Ubuntu-Basisimage. Sie müssen es zuerst installieren. Versuchenapt-get install software-properties-common

Übrigens müssen Sie sudo in der Docker-Datei nicht verwenden, da die Befehle standardmäßig als root ausgeführt werden, es sei denn, Sie wechseln mit dem USERBefehl zu einem anderen Benutzer .


2
Ich habe pt-get install software-properties-commonals ersten RUN pt-get install software-properties-commonBefehl hinzugefügt , wie so, jetzt bekomme ich diesen Fehler chopapp.com/#8a4vdsnw
Alexander Solonik

1
Abhängig von Ihrer Ubuntu-Version kann es entweder python-software-propertiesodersoftware-properties-common
user2915097

4
unter ubuntu 16.04 möchte dies 46MiB zusätzliche Daten installieren: / zu viel, um einen einfachen Befehl ausführen zu können.
Cweiske

26
Weder Python-Software-Eigenschaften noch Software-Eigenschaften-allgemein sind gültig
Jonathan Neufeld

9
Nur für diejenigen, die immer noch Fehler bekommen. Ich habe gelöst, indem ich Update und Installation in dieselbe Zeile gestellt habe : apt-get update && apt-get install -y software-properties-common. Das Update zuerst auszuführen und dann zu installieren scheint nicht zu funktionieren. Möglicherweise ein Docker-Fehler
FedFranz

56

Fügen Sie diese Zeilen hinzu, bevor Sie den apt-add-repositoryBefehl ausführen

RUN apt-get update && \
    apt-get install -y software-properties-common && \
    rm -rf /var/lib/apt/lists/*

2
Ich musste --fix-missing in die erste Zeile einfügen.
Edhowler

1
Was ist der Sinn von rm -rf /var/lib/apt/lists/*?
Jumpnett

Das rmmacht die Auswirkungen der rückgängig apt-get update. Es macht keinen Sinn, die Paketmetadaten in der Containerebene zu speichern. Wenn Sie später apt-get installzusätzliche Pakete benötigen, sollten Sie apt-get updatetrotzdem ein neues erstellen.
Toxaris
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.