pip无法安装软件包-Dockerfile

时间:2019-07-09 15:35:15

标签: python pip dockerfile aws-cli aws-sam-cli

对于以下Dockerfile:

FROM openjdk:10.0.2-jdk


RUN     curl -sSLO https://files.pythonhosted.org/packages/1d/64/a18a487b4391a05b9c7f938b94a16d80305bf0369c6b0b9509e86165e1d3/setuptools-41.0.1.zip && \
    unzip setuptools-41.0.1.zip -d /tmp && \
    cd /tmp/setuptools-41.0.1 && \
    python setup.py install && \
    rm -rf /tmp/*

RUN curl -sSLO https://files.pythonhosted.org/packages/93/ab/f86b61bef7ab14909bd7ec3cd2178feb0a1c86d451bc9bccd5a1aedcde5f/pip-19.1.1.tar.gz && \
    tar  -xzvf pip-19.1.1.tar.gz -C /tmp && \
    cd /tmp/pip-19.1.1 && \
    python setup.py install && \
    rm -rf /tmp/*


ENV VERSION=0.17.0

RUN curl -sSLO https://github.com/awslabs/aws-sam-cli/releases/download/v$VERSION/aws-sam-cli-${VERSION}.x86_64_linux.bottle.tar.gz && \
    tar -C /usr/local/bin -zxvf /aws-sam-cli-${VERSION}.x86_64_linux.bottle.tar.gz

RUN pip install aws-sam-cli

以下是下载和安装pip软件包时的错误。无法更改基本图片:

 Downloading https://files.pythonhosted.org/packages/03/8e/2424c0e65c4a066e28f539364deee49b6451f8fcd4f718fefa50cc3dcf48/backports.functools_lru_cache-1.5-py2.py3-none-any.whl
Installing collected packages: pytz, regex, tzlocal, six, python-dateutil, dateparser, chevron, enum34, scandir, pathlib2, Werkzeug, click, itsdangerous, MarkupSafe, Jinja2, Flask, jmespath, futures, docutils, urllib3, botocore, s3transfer, boto3, functools32, jsonschema, aws-sam-translator, wheel, aws-lambda-builders, chardet, idna, certifi, requests, future, backports.functools-lru-cache, arrow, jinja2-time, poyo, whichcraft, binaryornot, cookiecutter, PyYAML, serverlessrepo, websocket-client, ipaddress, backports.ssl-match-hostname, docker, aws-sam-cli
  Running setup.py install for regex: started
    Running setup.py install for regex: finished with status 'error'
    ERROR: Complete output from command /usr/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-8ydc0G/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b2VDRc/install-record.txt --single-version-externally-managed --compile:
    ERROR: BASE_DIR is /tmp/pip-install-8ydc0G/regex
    /usr/local/lib/python2.7/dist-packages/setuptools-41.0.1-py2.7.egg/setuptools/dist.py:472: UserWarning: Normalizing '2019.06.08' to '2019.6.8'
   running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/regex
    copying regex_2/regex/__init__.py -> build/lib.linux-x86_64-2.7/regex
    copying regex_2/regex/regex.py -> build/lib.linux-x86_64-2.7/regex
    copying regex_2/regex/_regex_core.py -> build/lib.linux-x86_64-2.7/regex
    creating build/lib.linux-x86_64-2.7/regex/test
    copying regex_2/regex/test/__init__.py -> build/lib.linux-x86_64-2.7/regex/test
    copying regex_2/regex/test/test_regex.py -> build/lib.linux-x86_64-2.7/regex/test
    running build_ext
    building 'regex._regex' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/regex_2
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-A8UpPM/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c regex_2/_regex.c -o build/temp.linux-x86_64-2.7/regex_2/_regex.o
    unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    ----------------------------------------
ERROR: Command "/usr/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-8ydc0G/regex/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-b2VDRc/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-8ydc0G/regex/
The command '/bin/sh -c pip install aws-sam-cli' returned a non-zero code: 1

如何解决此错误?

1 个答案:

答案 0 :(得分:1)

您仍然缺少某些软件包。下面的Dockerfile安装缺少的软件包。不确定是否要安装这些软件包,但是至少可以让您知道缺少的内容。这是一个有效的Dockerfile

FROM openjdk:10.0.2-jdk


RUN curl -sSLO https://files.pythonhosted.org/packages/1d/64/a18a487b4391a05b9c7f938b94a16d80305bf0369c6b0b9509e86165e1d3/setuptools-41.0.1.zip && \
    unzip setuptools-41.0.1.zip -d /tmp && \
    cd /tmp/setuptools-41.0.1 && \
    python setup.py install && \
    rm -rf /tmp/*

RUN curl -sSLO https://files.pythonhosted.org/packages/93/ab/f86b61bef7ab14909bd7ec3cd2178feb0a1c86d451bc9bccd5a1aedcde5f/pip-19.1.1.tar.gz && \
    tar  -xzvf pip-19.1.1.tar.gz -C /tmp && \
    cd /tmp/pip-19.1.1 && \
    python setup.py install && \
    rm -rf /tmp/*


ENV VERSION=0.17.0

RUN curl -sSLO https://github.com/awslabs/aws-sam-cli/releases/download/v$VERSION/aws-sam-cli-${VERSION}.x86_64_linux.bottle.tar.gz && \
    tar -C /usr/local/bin -zxvf /aws-sam-cli-${VERSION}.x86_64_linux.bottle.tar.gz

RUN apt-get update; apt-get -y install python-dev build-essential

RUN pip install aws-sam-cli