2016-11-23 2 views
1

Ich möchte ein Projekt von Dockerfile erstellen. Erstens sollte ich ein Framework von Github klonen und es installieren. In meinem Dockerfile Ich habe folgende instrutions:"dockerfile" Textdatei beschäftigt

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

ich bauen Bild mit:

docker build -t "myimage" . 

Aber ich habe einen Fehler über text file busy. Wie kann ich es überwinden?

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 

Mein Dockerfile Inhalt ist:

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

Bitte fügen Sie genügend Details hinzu, um Ihr Problem zu reproduzieren. Z.B. eine vollständige Dockerfile und ein gültiges öffentliches Git Repo. – BMitch

+0

@BMitch Hier meine Dockerfile https://github.com/kenenbek/travisci/blob/master/Dockerfile –

+1

Bitte * nicht * Link zu einer externen Ressource (in Ihrem Fall die Dockerfile). Poste stattdessen ein * complete minimal * Beispiel (siehe auch [MCVE]). –

Antwort

3

Die Fehlermeldung, die Sie sehen, sind aus der Ausgabe von make ist. Es scheint kein Fehler für Docker zu sein. Stattdessen verweist dies auf den Code, der im Image kompiliert wird. Daher möchten Sie dieses Problem in github mit ihnen besprechen.

Ich sehe eine recht große Anzahl von Kernel und Netzwerkkomponenten, die mit der App kompiliert werden, die in einer Docker-Sandbox möglicherweise nicht ordnungsgemäß funktionieren. Daher kann der Code, den Sie zu kompilieren versuchen, möglicherweise nicht in diesem Typ ausgeführt werden Isolation, ohne einige der von Docker bereitgestellten Schutzmechanismen zu deaktivieren. Weitere Informationen finden Sie unter docker's security documentation, insbesondere zu den Namespaces, Cgroups und Funktionen zum Schutz des Kernels.

+0

Manchmal sehe ich diesen Fehler und manchmal nicht, wenn ich ein Bild erstelle. Es ist sehr seltsam. Hast du diesen Fehler bekommen? –

+0

Der Fehler ist in meiner Umgebung aufgetreten. – BMitch

+0

Ich habe den Fehler nicht erhalten, wenn ich innerhalb des Containers makiere (CMAK als letzte Anweisung in Dockerfile lassen). Je nachdem, was du brauchst, kannst du das Bild danach auch noch einbinden, auch wenn es absolut keine saubere Übung ist. – gile

Verwandte Themen