kensung-lab / INSurVeyor

An insertion caller for Illumina paired-end WGS data.
GNU General Public License v3.0
21 stars 2 forks source link

Error in docker build image #26

Open Myno-Jeong opened 1 month ago

Myno-Jeong commented 1 month ago

Hello, I tried docker build image for INSurveyor. But, I couldn't complete it because there is no emmintrin.h file in git repository. So, would you upload this file for building image successfully?

Best

Mesh89 commented 1 month ago

emmintrin.h is a system header, it should be included in Ubuntu.

Did you change anything in the docker file? What commands are you using exactly?

Myno-Jeong commented 1 month ago

I didn't change anythingelse. My CMD is below: docker build -t insurveyor -f ./Dockerfile .

Myno-Jeong commented 1 month ago

building image log is below:


0.246 -- Detecting CXX compile features 0.247 -- Detecting CXX compile features - done 0.247 -- Configuring done (0.1s) 0.251 -- Generating done (0.0s) 0.251 -- Build files have been written to: /home 0.264 [ 5%] Building CXX object CMakeFiles/reads_categorizer.dir/reads_categorizer.cpp.o 0.290 In file included from /home/reads_categorizer.cpp:5: 0.290 /home/utils.h:9:10: fatal error: emmintrin.h: No such file or directory 0.290 9 | #include 0.290 | ^~~~~ 0.290 compilation terminated. 0.290 make[2]: [CMakeFiles/reads_categorizer.dir/build.make:76: CMakeFiles/reads_categorizer.dir/reads_categorizer.cpp.o] Error 1 0.290 make[1]: [CMakeFiles/Makefile2:95: CMakeFiles/reads_categorizer.dir/all] Error 2 0.291 make: *** [Makefile:91: all] Error 2

Mesh89 commented 1 month ago

Can you confirm you are building on a x86 system?

uname -m

should return x86_64

Myno-Jeong commented 1 month ago

I am currently using macOS. Does my local PC matter if I use docker to build an image?

Mesh89 commented 1 month ago

Yes, as far as I know, dockers are built for the architecture of the host machine.

If you need to run it on an ARM Mac, it may be possible using https://github.com/simd-everywhere/simde with a little bit of tinkering. I believe the file you need is sse2.h

Mesh89 commented 1 month ago

Also, to clarify, I believe that if you are using an ARM Mac to build your docker image, you will not be able to run it on other architectures.

Myno-Jeong commented 1 month ago

Would you let me know ubuntu version for building docker image?

FROM ubuntu

WORKDIR /home/

COPY htslib-1.20.tar.bz2 . COPY build_htslib.sh .

RUN apt-get update RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install tzdata RUN apt-get install -y unzip build-essential zlib1g-dev autoconf libbz2-dev liblzma-dev libcurl4-openssl-dev cmake

RUN ./build_htslib.sh

COPY CMakeLists.txt ./ COPY .h ./ COPY .cpp ./ ADD libs ./libs

RUN cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo . && make

RUN apt-get install -y python python-dev curl RUN curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py RUN python get-pip.py

RUN pip install pysam pyfaidx numpy

COPY random_pos_generator.py insurveyor.py ./

ENTRYPOINT [ "/usr/bin/python", "/home/insurveyor.py" ]

I'd like to know ubuntu version in Dockerfile.

Thank you

Mesh89 commented 1 month ago

I believe any recent Ubuntu version works. I personally used 20.04.