2016-03-27 6 views
1

Ich habe ein unmittelbares Problem, wie im Titel beschrieben, die erzeugt nicht die bin Verzeichnis (die, auf die das ENTRYPOINT Skript verwiesen wird), wenn ich Führen Sie docker:stage oder docker:publishLocal.sbt nicht bin-Verzeichnis beim Staging oder Veröffentlichung docker + andere Fragen

Ich habe dieses Verhalten noch nie zuvor gesehen, daher bin ich ein bisschen verloren, wie ich vorgehen soll, aber ich sollte auch erwähnen, dass ich dieses Projekt auf eine andere Art und Weise eingerichtet habe als normalerweise.

Das Projekt eingerichtet ist, als unter ihrem Stammverzeichnis folgt:

- infrastructure 
- app 
    - build.sbt 
    - target/... 
- another-project 
- project 
- BuildDefinition.scala 
- plugins.sbt 
- build.properties 
- build.sbt 

In meinem Stamm BuildDefinition.scala Ich habe alle meine Projektdefinitionen einrichten, einschließlich des app Projekt, das nicht alles inszeniert ich brauche.

Im build.sbt auf der Wurzel, habe ich nur:

sourcesInBase in ThisBuild := false 

name := "fantasy-factory" 

Im build.sbt auf das app Verzeichnis, ich habe nur den Docker-related stuff:

dockerBaseImage in Docker := "java:8-jre" 
mainClass := Some("akka.Main") 
javaOptions in Universal ++= Seq("com.nv.microservice.as.cluster.ClusterEntryPoint") 
version in Docker := "latest" 
packageName in Docker := "basic-distributed-microservice" 

Was wird get generiert beim Staging ist fast alles, was ich brauche ... alles außer dem bin Verzeichnis, das das Einstiegspunkt-Skript hat. So kann ich unter den app ‚s target Verzeichnis sehen:

- target 
- docker 
    - stage 
    - opt 
    - docker 
    - conf 
    - lib 
    - (I would have expected to see bin here) 
    - Dockerfile 
- Dockerfile 

Das ist alles sehr frustrierend für mich; Jeder Rat wird geschätzt.

+0

Ich habe das gleiche Verhalten und ich verstehe nicht, warum das passiert – Haito

Antwort

2

Ich hatte ein ähnliches Problem, das ich gelöst habe, in (Compile) zum mainClass Schlüssel hinzuzufügen, wie unten. In Ihrer build.sbt Datei:

lazy val root = (project in file(".")) 
.enablePlugins(JavaServerAppPackaging) 
.enablePlugins(DockerPlugin) 
.settings(
    name := "my-project", 
    mainClass in (Compile) := Some("MyFQNMainClass"), 
    version := "1.0.0.BUILD", 
    dockerBaseImage := "azul/zulu-openjdk:8", 
    dockerUpdateLatest := true, 
    dockerExposedPorts := Seq(8080), 
    dockerRepository := Some("myrepo") 
) 

scalaVersion := "2.11.8" 

sbtVersion := "0.13.9" 

... 

Ich habe auch die plugins.sbt Datei (unter dem project Ordner):

logLevel := Level.Warn 

dependencyOverrides += "org.scala-sbt" % "sbt" % "0.13.9" 

addSbtPlugin("com.earldouglas" % "xsbt-web-plugin" % "2.1.0") 

addSbtPlugin("com.typesafe.sbt" % "sbt-s3" % "0.8") 

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.4") 

addSbtPlugin("io.spray" % "sbt-revolver" % "0.8.0") 

Und build.properties im selben Ordner wie plugins.sbt:

sbt.version=0.13.9 

Hope it hilft.

+0

Vielen Dank, verpasste mainClass und JavaServerAppPackaging –