Ich arbeite an "Andocken" eine Java-Webanwendung (https://github.com/kermitt2/grobid), die ich mit Anlegesteg ausführen möchte.Docker Bild mit Steg zu bauen - wann sollte ich bauen?
Hier die Dockerfile:
FROM jetty:9.3-jre8
ADD ./grobid-home/target/grobid-home-0.4.1-SNAPSHOT.zip /opt
RUN unzip /opt/grobid-home-0.4.1-SNAPSHOT.zip -d /opt && \
rm /opt/grobid-home-0.4.1-SNAPSHOT.zip && \
apt-get update && apt-get -y --no-install-recommends install libxml2
COPY ./grobid-service/target/grobid-service-0.4.1-SNAPSHOT.war \
/var/lib/jetty/webapps/ROOT.war
Die aktuelle Docker Bild funktioniert perfekt, aber es erfordert die Anwendung vor gebaut werden (es ist nicht aus dem frischen git clone gebaut werden kann). Zum Beispiel konnte ich keinen Build mit dem Docker-HUB-Build-System ausführen.
Was wäre der bevorzugte Ansatz? Erstellen Sie das Maven-Projekt, während Sie das Image erstellen oder das Andockfenster ausführen, nachdem der Build erfolgreich abgeschlossen wurde.
der Tat gute Punkte zu automatisieren. Vielen Dank. Jetzt habe ich eine zweite Frage, wie sollte diese Pipeline integriert werden? Nehmen wir an, wir haben einen Travis-Build, der sich um das Erstellen von Snapshot-Images kümmert. Wie kann ich einen zweiten Build, vielleicht manuell, implementieren, wenn er ausgelöst wird und das Docker-Image erstellt? Der Docker-Hub ist nicht geeignet, da die Daten vorher erstellt werden müssen. Irgendein Vorschlag? Travis vielleicht? Ich bin mir nicht sicher ... –
Sie könnten den Docker-Hub verwenden, Sie müssen nur Ihre Artefakte in einem Maven-Repository veröffentlichen, zum Beispiel Sonatyp: http://central.sonatype.org/pages/ossrh-guide. html So müssen Sie in Ihrer Dockerdatei nur 'ADD http: // theurlofyourjaronsonatype' eingeben und travis veranlassen, dass jedes Mal, wenn Sie Ihr jar/war, ein Andockfenster erstellt wird –