overexchange
overexchange

Reputation: 1

pip unable to install package - Dockerfile

For the below 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

Below is the error in downloading & installing pip package. Cannot change base image:

 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

How to resolve this error?

Upvotes: 1

Views: 1367

Answers (1)

Perplexabot
Perplexabot

Reputation: 1989

You are missing some packages still. The Dockerfile below installs the missing packages. Not sure if installing these packages is something you desire, but at least it will let you know what you are missing. Here is a working 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

Upvotes: 1

Related Questions