2016-04-13 1 views
12

Ich kann pip in Docker nicht installieren.Install pip in docker

Hier ist meine Dockerfile:

FROM ubuntu:14.04 

# Install dependencies 
RUN apt-get update -y 
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip 

Beim Bau, erhalte ich:

Sending build context to Docker daemon 109.6 kB 
Step 1 : FROM ubuntu:14.04 
---> b549a9959a66 
Step 2 : RUN apt-get update -y 
---> Using cache 
---> 84577471562c 
Step 3 : RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip 
---> Running in 49252a6d0eb1 
Reading package lists... 
Building dependency tree... 
Reading state information... 
python3.4 is already the newest version. 
The following extra packages will be installed: 
    apache2-bin apache2-data binutils build-essential ca-certificates cpp 
    cpp-4.8 dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git-man krb5-locales 
    libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl 
    libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libasan0 
    libasn1-8-heimdal libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libcurl3 
    libcurl3-gnutls libdpkg-perl libedit2 liberror-perl libfakeroot 
    libfile-fcntllock-perl libgcc-4.8-dev libgmp10 libgomp1 libgssapi-krb5-2 
    libgssapi3-heimdal libhcrypto4-heimdal libheimbase1-heimdal 
    libheimntlm0-heimdal libhx509-5-heimdal libidn11 libisl10 libitm1 
    libk5crypto3 libkeyutils1 libkrb5-26-heimdal libkrb5-3 libkrb5support0 
    libldap-2.4-2 libmcrypt4 libmpc3 libmpfr4 libmysqlclient18 libpython-stdlib 
    libpython2.7-minimal libpython2.7-stdlib libquadmath0 libroken18-heimdal 
    librtmp0 libsasl2-2 libsasl2-modules libsasl2-modules-db libstdc++-4.8-dev 
    libtimedate-perl libtsan0 libwind0-heimdal libx11-6 libx11-data libxau6 
    libxcb1 libxdmcp6 libxext6 libxml2 libxmuu1 linux-libc-dev lsof make 
    manpages manpages-dev mysql-common openssh-client openssl patch php5-cli 
    php5-common php5-json php5-readline psmisc python python-chardet 
    python-chardet-whl python-colorama python-colorama-whl python-distlib 
    python-distlib-whl python-html5lib python-html5lib-whl python-minimal 
    python-pip-whl python-pkg-resources python-requests python-requests-whl 
    python-setuptools python-setuptools-whl python-six python-six-whl 
    python-urllib3 python-urllib3-whl python-wheel python2.7 python2.7-minimal 
    python3-pkg-resources rsync sgml-base ssl-cert xauth xml-core xz-utils 
Suggested packages: 
    www-browser apache2-doc apache2-suexec-pristine apache2-suexec-custom ufw 
    apache2-utils binutils-doc cpp-doc gcc-4.8-locales debian-keyring 
    g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg gcc-multilib 
    autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.8-multilib 
    libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan0-dbg 
    libtsan0-dbg libquadmath0-dbg gettext-base git-daemon-run 
    git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch 
    git-bzr git-cvs git-mediawiki git-svn php-pear glibc-doc krb5-doc krb5-user 
    libmcrypt-dev mcrypt libsasl2-modules-otp libsasl2-modules-ldap 
    libsasl2-modules-sql libsasl2-modules-gssapi-mit 
    libsasl2-modules-gssapi-heimdal libstdc++-4.8-doc make-doc man-browser 
    ssh-askpass libpam-ssh keychain monkeysphere ed diffutils-doc 
    php5-user-cache python-doc python-tk python-genshi python-lxml 
    python-distribute python-distribute-doc python2.7-doc binfmt-support 
    python3-setuptools openssh-server sgml-base-doc openssl-blacklist debhelper 
Recommended packages: 
    ssh-client python-dev-all 
The following NEW packages will be installed: 
    apache2 apache2-bin apache2-data binutils build-essential ca-certificates 
    cpp cpp-4.8 curl dpkg-dev fakeroot g++ g++-4.8 gcc gcc-4.8 git git-man 
    krb5-locales libalgorithm-diff-perl libalgorithm-diff-xs-perl 
    libalgorithm-merge-perl libapache2-mod-php5 libapr1 libaprutil1 
    libaprutil1-dbd-sqlite3 libaprutil1-ldap libasan0 libasn1-8-heimdal 
    libatomic1 libc-dev-bin libc6-dev libcloog-isl4 libcurl3 libcurl3-gnutls 
    libdpkg-perl libedit2 liberror-perl libfakeroot libfile-fcntllock-perl 
    libgcc-4.8-dev libgmp10 libgomp1 libgssapi-krb5-2 libgssapi3-heimdal 
    libhcrypto4-heimdal libheimbase1-heimdal libheimntlm0-heimdal 
    libhx509-5-heimdal libidn11 libisl10 libitm1 libk5crypto3 libkeyutils1 
    libkrb5-26-heimdal libkrb5-3 libkrb5support0 libldap-2.4-2 libmcrypt4 
    libmpc3 libmpfr4 libmysqlclient18 libpython-stdlib libpython2.7-minimal 
    libpython2.7-stdlib libquadmath0 libroken18-heimdal librtmp0 libsasl2-2 
    libsasl2-modules libsasl2-modules-db libstdc++-4.8-dev libtimedate-perl 
    libtsan0 libwind0-heimdal libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 
    libxext6 libxml2 libxmuu1 linux-libc-dev lsof make manpages manpages-dev 
    mysql-common openssh-client openssl patch php5 php5-cli php5-common 
    php5-json php5-mcrypt php5-mysql php5-readline psmisc python python-chardet 
    python-chardet-whl python-colorama python-colorama-whl python-distlib 
    python-distlib-whl python-html5lib python-html5lib-whl python-minimal 
    python-pip python-pip-whl python-pkg-resources python-requests 
    python-requests-whl python-setuptools python-setuptools-whl python-six 
    python-six-whl python-urllib3 python-urllib3-whl python-wheel python2.7 
    python2.7-minimal python3-pkg-resources rsync sgml-base ssl-cert xauth 
    xml-core xz-utils 
0 upgraded, 130 newly installed, 0 to remove and 4 not upgraded. 
Need to get 61.9 MB of archives. 
After this operation, 213 MB of additional disk space will be used. 
Err http://archive.ubuntu.com/ubuntu/ trusty-updates/main libroken18-heimdal amd64 1.6~git20131207+dfsg-1ubuntu1.1 
    Could not resolve 'archive.ubuntu.com' 
Err http://archive.ubuntu.com/ubuntu/ trusty-updates/main libasn1-8-heimdal amd64 1.6~git20131207+dfsg-1ubuntu1.1 
    Could not resolve 'archive.ubuntu.com' 

. 
. 
. 

Err http://archive.ubuntu.com/ubuntu/ trusty-security/main python2.7 amd64 2.7.6-8ubuntu0.2 
    Could not resolve 'archive.ubuntu.com' 
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/h/heimdal/libroken18-heimdal_1.6~git20131207+dfsg-1ubuntu1.1_amd64.deb Could not resolve 'archive.ubuntu.com' 

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/h/heimdal/libasn1-8-heimdal_1.6~git20131207+dfsg-1ubuntu1.1_amd64.deb Could not resolve 'archive.ubuntu.com' 

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb5support0_1.12+dfsg-2ubuntu5.2_amd64.deb Could not resolve 'archive.ubuntu.com' 

E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/s/ssl-cert/ssl-cert_1.0.33_all.deb Could not resolve 'archive.ubuntu.com' 

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 
The command '/bin/sh -c apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip' returned a non-zero code: 100 

this answer gelesen hatte, habe ich versucht das Hinzufügen der Zeile RUN "sh" "-c" "echo nameserver 8.8.8.8 >> /etc/resolv.conf" - den Fehler diesmal ist:

... 
... 
Reading state information... 
E: Unable to locate package php5-mcrypt 
E: Unable to locate package python-pip 
The command '/bin/sh -c apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql python3.4 python-pip' returned a non-zero code: 100 

Was mache ich falsch? Ich habe einige Behauptungen gesehen, dass ich eine andere Version von Ubuntu ausprobieren sollte, aber der Wechsel zu 13.1 hat nichts geändert.

+0

Auf welcher Plattform befinden Sie sich? – Nick

Antwort

20

Während T. Arboreus 'Antwort die Probleme mit der Auflösung von' archive.ubuntu.com 'beheben kann, glaube ich, dass der letzte Fehler, den Sie erhalten, nicht über die Pakete php5-mcrypt und bekannt ist. Nichtsdestotrotz funktionierte das reduzierte Dockerfile von Ihnen mit nur diesen beiden Paketen (mit Debian 8.4 und Docker 1.11.0), aber ich bin nicht ganz sicher, ob das der Fall sein könnte, weil mein Hostsystem anders ist als Ihres.

FROM ubuntu:14.04 

# Install dependencies 
RUN apt-get update && apt-get install -y \ 
    php5-mcrypt \ 
    python-pip 

Doch nach this answer sollten Sie darüber nachdenken, die python3-pip Paket anstelle des python-pip-Paket installieren, wenn 3.x. Python

Um die Installation des php5-mcrypt Pakets zu ermöglichen, möchten Sie möglicherweise das Universum-Repository hinzufügen, wie es angezeigt wird right here. Ich hatte Probleme mit dem add-apt-repository Befehl, der im Ubuntu Docker Bild fehlt, also habe ich zuerst das Paket software-properties-common installiert, um den Befehl verfügbar zu machen.

Splitting die Aussagen und apt-get update und apt-get install in einem RUN Befehl setzen wird auch empfohlen, here.

Oh, und übrigens, Sie brauchen nicht die -y Flagge bei apt-get update, weil es nichts gibt, das automatisch bestätigt werden muss.

Endlich:

FROM ubuntu:14.04 

# Install dependencies 
RUN apt-get update && apt-get install -y \ 
    software-properties-common 
RUN add-apt-repository universe 
RUN apt-get update && apt-get install -y \ 
    apache2 \ 
    curl \ 
    git \ 
    libapache2-mod-php5 \ 
    php5 \ 
    php5-mcrypt \ 
    php5-mysql \ 
    python3.4 \ 
    python3-pip 

Anmerkung: Die verwendeten Versionen (zum Beispiel von Ubuntu) könnten in Zukunft veraltet sein.

+0

Danke für die Antwort! Ich bin auf Mac OS X (10.11.4), wenn das irgendeinen Unterschied macht (obwohl ich dachte, der ganze Punkt von Docker war, dass es unabhängig vom zugrundeliegenden System lief? Ich bin ziemlich neu, also könnte ich mich irren ...). Ich werde jetzt deine Vorschläge versuchen. – scubbo

+1

Das hat funktioniert! Vielen Dank! – scubbo

+0

Warum brauchen Sie: 'RUN apt-get update'? –

0

Versuchen Sie folgendes:

  1. Kommentar- die folgende Zeile in/etc/default/Docker DOCKER_OPTS = "- dns 8.8.8.8 --dns 8.8.4.4"
  2. Starten Sie den Docker Service sudo Service docker restart
  3. Löschen Sie alle Bilder, die die ungültigen DNS-Einstellungen zwischengespeichert haben.
  4. Build wieder und das Problem sollte gelöst werden.

Von this question.

+0

Kein Glück - es gibt keine Datei '/ etc/default/docker' auf meinem System (Mac OS X) – scubbo

+0

Entschuldigung, klopfte auf thisone –