2016-04-13 39 views
12

Tôi không thể cài đặt pip trong Docker.Cài đặt pip trong docker

Dưới đây là Dockerfile tôi:

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 

Khi xây dựng, tôi nhận được:

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 

Sau khi đọc this answer, tôi đã cố gắng thêm dòng RUN "sh" "-c" "echo nameserver 8.8.8.8 >> /etc/resolv.conf" - lỗi lần này là:

... 
... 
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 

Tôi đang làm gì sai? Tôi đã nhìn thấy một số tuyên bố rằng tôi nên thử một phiên bản khác của Ubuntu, nhưng chuyển sang 13.1 đã không thay đổi bất cứ điều gì.

+0

Bạn đang sử dụng nền tảng nào? – Nick

Trả lời

20

Trong khi câu trả lời của T. Arboreus có thể khắc phục được sự cố khi giải quyết 'archive.ubuntu.com', tôi cho rằng lỗi cuối cùng bạn nhận được là không biết về các gói php5-mcryptpython-pip. Tuy nhiên, Dockerfile đã giảm của bạn chỉ với hai gói này làm việc cho tôi (sử dụng Debian 8.4 và Docker 1.11.0), nhưng tôi không chắc liệu đó có phải là trường hợp vì hệ thống máy chủ của tôi khác với hệ thống của bạn.

FROM ubuntu:14.04 

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

Tuy nhiên, theo this answer bạn nên suy nghĩ về việc cài đặt gói python3-pip thay vì gói python-pip khi sử dụng Python 3.x.

Hơn nữa, để cài đặt gói php5-mcrypt hoạt động, bạn có thể muốn thêm kho vũ trụ như được hiển thị right here. Tôi đã gặp rắc rối với lệnh add-apt-repository bị thiếu trong hình ảnh Docker Ubuntu vì vậy tôi đã cài đặt gói software-properties-common lúc đầu để làm cho lệnh có sẵn.

Tách các câu lệnh và đặt apt-get updateapt-get install vào một lệnh RUN cũng được đề xuất here.

Ồ, nhân tiện, bạn thực sự không cần cờ -y tại apt-get update vì không có gì phải được xác nhận tự động.

Cuối cùng:

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 

Ghi chú: Các phiên bản được sử dụng (ví dụ của Ubuntu) thể là lỗi thời trong tương lai.

+0

Cảm ơn bạn đã trả lời! Tôi đang trên Mac OS X (10.11.4), nếu điều đó tạo ra bất kỳ sự khác biệt nào (mặc dù tôi nghĩ toàn bộ điểm Docker là nó chạy độc lập với hệ thống cơ bản? Tôi khá mới mẻ với điều này, vì vậy tôi có thể sai ...). Tôi sẽ cố gắng đề xuất của bạn ngay bây giờ. – scubbo

+1

Đã hoạt động! Cảm ơn bạn! – scubbo

+0

tại sao bạn cần: 'RUN apt-get update'? –

0

Hãy thử điều này:

  1. Bỏ ghi chú dòng sau trong/etc/default/Docker DOCKER_OPTS = "- dns 8.8.8.8 --dns 8.8.4.4"
  2. Khởi động lại dịch vụ sudo dịch vụ Docker docker restart
  3. Xóa mọi hình ảnh đã lưu trong bộ nhớ cache các thiết lập DNS không hợp lệ.
  4. Xây dựng lại và vấn đề cần được giải quyết.

Từ this question.

+0

Không may mắn - không có tệp '/ etc/default/docker' trên hệ thống của tôi (Mac OS X) – scubbo

+0

Xin lỗi, đã nhấn vào đây –