2016-11-23 1 views
1

dockerfile에서 프로젝트를 만들고 싶습니다. 첫째, github에서 프레임 워크를 복제하고 설치해야합니다. 내 Dockerfile I가 다음 instrutions에서 는 :"dockerfile"텍스트 파일 사용 중

RUN git clone https://github.com/simgrid/project.git 
WORKDIR "/project" 
RUN cmake option1 options2 . 
RUN sudo make 
RUN sudo make install 

내가 가진 이미지 구축 :

docker build -t "myimage" . 

을하지만 text file busy에 대한 오류가 있습니다. 어떻게 그것을 극복 할 수 있습니까?

make[2]: execvp: /simgrid/tools/sg_unit_extractor.pl: Text file busy 
    make[2]: *** [src/cunit_unit.cpp] Error 127 
    CMakeFiles/testall.dir/build.make:69: recipe for target 'src/cunit_unit.cpp' failed 
    CMakeFiles/Makefile2:616: recipe for target 'CMakeFiles/testall.dir/all' failed 
    make[1]: *** [CMakeFiles/testall.dir/all] Error 2 
    Makefile:160: recipe for target 'all' failed 
    make: *** [all] Error 2 
    The command '/bin/sh -c sudo make' returned a non-zero code: 2 

내 Dockerfile 내용은 다음과 같습니다

FROM ubuntu:16.04 
RUN apt-get update && apt-get install -y \ 
      sudo \ 
      git \ 
      build-essential \ 
      cmake \ 
      libboost-dev \ 
      libboost-all-dev \ 
      doxygen \ 
      python3 
RUN git clone https://github.com/simgrid/simgrid.git 
WORKDIR "/simgrid" 
RUN cmake -Denable_documentation=OFF -Denable_coverage=OFF -Denable_java=OFF -Denable_model-checking=OFF \ 
    -Denable_lua=OFF -Denable_compile_optimizations=OFF -Denable_smpi=OFF -Denable_smpi_MPICH3_testsuite=OFF -Denable_compile_warnings=OFF . 
RUN sudo make 
RUN sudo make install 
+0

문제를 재현 할 수있을 정도로 자세하게 기재하십시오. 예 : 전체 Dockerfile과 유효한 공개 git repo. – BMitch

+0

@BMitch 여기 내 도커 파일 https://github.com/kenenbek/travisci/blob/master/Dockerfile –

+1

외부 리소스 (귀하의 경우 Dockerfile)에 * 연결하지 * 마십시오 *. 대신 * 완전한 최소 예를 게시하십시오 ([MCVE] 참조). –

답변

3

당신이보고있는 오류 메시지는 메이크업의 출력에서입니다. Docker에서는 오류가 아닙니다. 대신, 이것은 이미지 내부에서 컴파일되는 코드를 다시 가리키고 있으므로 github에서이 문제를 제기하고 싶을 것입니다.

상당량의 커널 및 네트워크 구성 요소가 응용 프로그램과 함께 컴파일되고 있는데, 이는 도커 샌드 박스에서 제대로 작동하지 않을 수 있으므로 컴파일하려는 코드가이 유형으로 실행되지 않을 수 있습니다. 도커가 제공하는 보호 장치를 사용하지 않고도 격리 할 수 ​​있습니다. 특히 커널을 보호하기위한 네임 스페이스, cgroup 및 기능에 대한 자세한 내용은 docker's security documentation을 참조하십시오.

+0

경우에 따라 이미지를 만들 때 때때로이 오류가 표시되고 때로는 표시되지 않습니다. 매우 이상합니다. 그 오류가 있었나요? –

+0

내 환경에서 오류가 발생했습니다. – BMitch

+0

컨테이너 내부에서 make를 실행하는 중에 오류가 발생하지 않았습니다 (cmock을 Dockerfile의 마지막 명령으로 남겨 둡니다). 필요에 따라 이미지를 커밋 할 수 있습니다. 물론 깨끗한 습관이 아니더라도 마찬가지입니다. – gile

관련 문제