2017-01-03 2 views
0

Ich benutze Jhipster von Docker unter Fenster.Sync Ordner in Docker Bild von Jhipster

Ich folge der tuto aber Ich kann meine Änderung in der Docker Bild nicht synchronisieren.

Ich möchte mein eigenes Bild von jhipster haben. Ich schaffe neue

[email protected] MINGW64 ~/jhipster/app/src/main/docker 
$ docker build -t general03-jhipster . 
Sending build context to Docker daemon 5.632 kB 
Step 1 : FROM jhipster/jhipster 
---> 0ae13f5d5a79 
Step 2 : ADD . /app 
---> Using cache 
---> 1a8aaf63bf7e 
Step 3 : ENV JHIPSTER_SLEEP 0 
---> Using cache 
---> 67a9ab5ce70a 
Step 4 : ADD *.war /app.war 
No source files were specified 

In meinem Dockerfile ich das Original jhipster Dockerfile kopiert und ersetzen ersten Zeile und ADD . /app

FROM ubuntu:trusty 

ADD . /app 

ENV JHIPSTER_SLEEP 0 

# add directly the war 
ADD *.war /app.war 

RUN sh -c 'touch /app.war' 
VOLUME /tmp 
EXPOSE 8080 
CMD echo "The application will start in ${JHIPSTER_SLEEP}s..." && \ 
    sleep ${JHIPSTER_SLEEP} && \ 
    java -Djava.security.egd=file:/dev/./urandom -jar /app.war 

Und ich sehe das Bild mit docker images aber ohne REPOSITORY und TAG! So wenn ich versuche, docker run 67a9ab5ce70a zu starten Ich habe diesen Fehler

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: No command specified.docker run 67a9ab5ce70a 

Jemand kann mir helfen, meine lokale Modifikation der Docker Bilder zu schieben?

+0

Können Sie die Ausgabe Ihres Docker Build-Befehl zur Verfügung stellen? – BMitch

+0

Zeigen Sie Ihre Dockerfile, insbesondere die Zeilen mit CMD oder ENTRYPOINT, wenn Sie nichts in diesen 2 Direktiven angeben, müssen Sie einen Befehl zu Ihrem 'Docker run 67' hinzufügen, eine Shell oder irgendetwas – user2915097

Antwort

0

, wenn Sie sagen

docker build -t general03-jhipster . 

es bedeutet "build ein Docker Bild mit dem Namen general03-jhipster basiert auf einer Docker Datei, die sich in ."

So Sie sollte in der Regel mit docker run general03-jhipster laufen, aber ohne Argumente, wird dies nicht funktionieren, bis Sie Portbindungen

bereitstellen

für die Standard JHipster Konfiguration und dev Profil

sollten Sie

docker run --rm -p 8080:8080 general03-jhipster 

laufen Wenn dies nicht gelingt, Sie propably in prod Modus starten, so braucht sie eine Datenbank zu binden. Dies in der Befehlszeile zu übergeben, kann unordentlich werden. Hier sollten Sie einen Blick auf JHipsters Docker compose support, nehmen Docker compose zu verwenden, um alle Datenbanken zu verwalten, Elasticsearch Instanzen etc ..

bearbeiten: Ich habe nicht den Fehler zum ersten Mal hier bemerkt

Step 4 : ADD *.war /app.war 
No source files were specified 

Es ist also einfach, Sie haben keine WAR-Datei generiert, so offensichtlich, dass der Docker-Build fehlschlägt.

Verwenden

./mvnw package -Pprod docker:build 

oder

./gradlew build -Pprod bootRepackage buildDocker 

einen richtigen Andockfensters build zu erzeugen.

Wenn Sie einige Docker spezifische denkt (und mit gradle) ändern möchten, können Sie dies ändern in „gradle/docker.gradle“

+0

Dank Ihrer Antwort, aber ich denke meine Fehler ist auf Dockerfile. Ist es gut geschrieben? – general03

+0

Ja, Sie haben Recht mit ** Schritt 4 **, ich gründete das Problem. Und für dich ist der ** Schritt 2 ** richtig? Ich denke, es ist eher "COPY ../../../app/app", nein? – general03

+0

Nein. Die Dockerdatei wird über die Maven/Gradle-Task in den richtigen Ordner kopiert. Ich empfehle immer, die Build-Aufgabe über manuelle Docker-Befehle zu verwenden. Wie Sie versucht haben, dies manuell zu tun, ist es fehlgeschlagen, da unsere Docker-Dateien eine andere Konfiguration annehmen, die in der Build-Aufgabe –