I have installed Docker on a RHEL7 server and it is running. I am trying to build my first Docker Image that I found on GitHub to build a python library docker image for use with Demisto. https://github.com/demisto/tools/tree/master/docker
I modified the requirements folder and just added one python package, impyla. As you can see below it downloads and impyla and its dependencies but then returns an error message, but I am not sure what to do now. Does anybody with docker and or python experience know what I should try next?
[root@localhost docker]# sudo ./create_docker_image.sh dockerstuff/docker_python_image
Sending build context to Docker daemon 48.13kB
Step 1/3 : FROM python:2.7.15-slim-jessie
---> af47402d957b
Step 2/3 : COPY requirements.txt .
---> Using cache
---> e107910d781c
Step 3/3 : RUN pip install --no-cache-dir -r requirements.txt
---> Running in 41e182aee016
Collecting impyla (from -r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/6f/96/92f933cd216f9ff5d7f4ba7e0615a51ad4e3beb31a7de60f7df365378bb9/impyla-0.14.1-py2-none-any.whl (165kB)
Collecting six (from impyla->-r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting bitarray (from impyla->-r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/e2/1e/b93636ae36d08d0ee3aec40b08731cc97217c69db9422c0afef6ee32ebd2/bitarray-0.8.3.tar.gz
Collecting thrift<=0.9.3 (from impyla->-r requirements.txt (line 1))
Downloading https://files.pythonhosted.org/packages/ae/58/35e3f0cd290039ff862c2c9d8ae8a76896665d70343d833bdc2f748b8e55/thrift-0.9.3.tar.gz
Installing collected packages: six, bitarray, thrift, impyla
Running setup.py install for bitarray: started
Running setup.py install for bitarray: finished with status 'error'
Complete output from command /usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-1p5nQr/bitarray/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-U39Tv0/install-record.txt --single-version-externally-managed --compile:
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/bitarray
copying bitarray/__init__.py -> build/lib.linux-x86_64-2.7/bitarray
copying bitarray/test_bitarray.py -> build/lib.linux-x86_64-2.7/bitarray
running build_ext
building 'bitarray._bitarray' extension
creating build/temp.linux-x86_64-2.7/bitarray
gcc -pthread -fno-strict-aliasing -g -02 -DNDEBUG -g -fwrapv -03 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/python2.7 -c bitarray/_bitarray.c -o build/temp.linux-x86_64-2.7/bitarray/_bitarray.o
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
------------------------------------------
Command "/usr/local/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-1p5nQr/bitarray/setup.py';f=getattr(tokensize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-U39Tv0/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-1p5nQr/bitarray/
The command '/bin/sh -c pip install --no-cache-dir -r requirements.txt' returned a non-zero code: 1
Basically you have to add all the dependencies yourself. Line 2 is what I added I have just modified the Dockerfile and built it myself. It works. Let me know if you have any questions.
FROM python:2.7.15-slim-jessie
RUN apt-get update -y && apt-get install apt-file -y && apt-file update -y && apt-get install -y python3-dev build-essential
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
This is for anyone who is using a continuumio/miniconda3:latest
based image and encountered the unable to execute 'gcc'
error. I added the following line to my Dockerfile, and it is all that I minimally needed:
RUN apt-get update && apt-get -y install gcc
Note that the above image in turn uses debian:latest
. Also, I didn't need all of build-essential
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With