Ich baue ein Docker Bild mit einem fetten Glas. Ich verwende das sbt-assembly
-Plugin, um das Glas zu bauen, und das sbt-native-packager
, um das Docker-Bild zu erstellen. Ich bin mit SBT nicht sehr vertraut und stoße auf die folgenden Probleme.SBT: Wie man ein Fettglas Dockerize?
Ich mag eine Abhängigkeit von der
assembly
Aufgabe aus derdocker:publish
Aufgabe erklären, so dass das Fett Glas erstellt wird, bevor es zu dem Bild hinzugefügt wird. Ich habe wie in der doc angewiesen, aber es funktioniert nicht.assembly
läuft nicht, bis ich es aufruft.publish := (publish dependsOn assembly).value
Einer der Schritte in das Bild Aufbau kopiert das Fett Glas. Da das Assembly-Plugin das Glas in
target/scala_whatever/projectname-assembly-X.X.X.jar
erstellt, muss ich den genauenscala_whatever
und den Jar-Namen kennen. Assembly scheint einen SchlüsselassemblyJarName
zu haben, aber ich bin mir nicht sicher, wie man darauf zugreift. Ich habe folgendes versucht, was fehlschlägt.Cmd("COPY", "target/scala*/*.jar /app.jar")
Hilfe!
Ja. Dies ist das Beispiel aus der Dokumentation. Ein kleiner Hinweis: Sie können das 'DockerPlugin' in' enablePlugins (...) 'entfernen. Das 'JavaAppPackaging' aktiviert es standardmäßig. – Muki
@Muki Nicht genau aus dem doc. Das Dokument verwendet veralteten 'jarName' und hat kein Beispiel für Fettglas als Docker-Container, sondern nur einzelne Stücke. Aber ja, ich habe die Idee vom Doc bekommen. Können Sie sagen, ob es eine Möglichkeit gibt, die Erstellung von Skripts zu stoppen, die als Standardeinstiegspunkt dienen? Ich schließe sie nicht ein, aber sie werden immer noch in 'opt/docker/bin' lokal generiert. –