2016-11-30 1 views
0

Ich versuche sbt-docker zu meinem sbt-Build meiner Spiel-Website hinzuzufügen, aber ich stoße auf ein Problem. Aus irgendeinem Grund kann keiner der dockerbezogenen Sachen auf der Unterseite auflösen.Docker bezogene sbt-Tags können nicht aufgelöst werden.

Projekt/plugins.sbt

logLevel := Level.Warn 

resolvers ++= Seq(
    "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/" 
) 

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.9") 

build.sbt

name := "personal_site" 

version := "1.1" 

lazy val `personal_site` = (project in file(".")).enablePlugins(PlayScala,DockerPlugin) 

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(jdbc , cache , ws , specs2 % Test) 

unmanagedResourceDirectories in Test <+= baseDirectory (_ /"target/web/public/test") 

resolvers += "scalaz-bintray" at "https://dl.bintray.com/scalaz/releases" 

dockerfile in docker := { 
    val targetDir = "/usr/src" 

    new Dockerfile { 
     from("flurdy/activator") 
     //More goes here 
    } 
} 

imageNames in docker := Seq(
    // Sets the latest tag 
    ImageName(s"${name.value}:latest"), 

    // Sets a name with a tag that contains the project version 
    ImageName(
     namespace = None, 
     repository = name.value, 
     tag = Some("v" + version.value) 
    ) 
) 

Hier ist ein Bild von dem, was es sieht aus wie in IntelliJ

enter image description here

Ich habe auch versucht, Hinzufügen addSbtPlugin("se.marcuslonnberg" % "sbt-docker" % "1.4.0") zu meinem project/plugins.sbt BU t Ich bekomme diesen Fehler über DockerPlugin, der zweimal importiert wird.

~/Sync/Projects/Programming/Personal_Site (master ✘)✹ ᐅ sbt clean 
[info] Loading project definition from /home/ryan/Sync/Projects/Programming/Personal_Site/project 
/home/ryan/Sync/Projects/Programming/Personal_Site/build.sbt:5: error: reference to DockerPlugin is ambiguous; 
it is imported twice in the same scope by 
import _root_.sbtdocker.DockerPlugin 
and import _root_.com.typesafe.sbt.packager.docker.DockerPlugin 
lazy val `personal_site` = (project in file(".")).enablePlugins(PlayScala,DockerPlugin) 
+0

Funktioniert 'st Kompilierung', wenn Sie die Importe entfernen? Mit anderen Worten, sind Sie sicher, dass es ein Problem mit Ihrem Code und nicht IntelliJ ist? – jackweirdy

+0

Welche Importe meinst du? –

+0

Entschuldigung, ich habe die Fehlermeldung falsch gelesen. Bitte fügen Sie den Inhalt Ihrer plugins.sbt ein, es sieht so aus, als könnten Sie zwei verschiedene Plugins importieren, um Docker Images zu erstellen, was die Ambiguität verursacht – jackweirdy

Antwort

1

Versuchen Sie Ihre build.sbt Konfig zu ändern.

lazy val root = (project in file(".")).enablePlugins(sbtdocker.DockerPlugin, PlayScala) 

Es beseitigt die Mehrdeutigkeit durch den vollständigen Namen zu DockerPlugin verwenden, da sbt-native-packager den gleichen Namen für seine Docker Plugin verwendet, glaube ich.

Vielleicht lohnt es sich, ein Github-Problem mit dem Repo des Autors anzusprechen, damit sie es in den Projektdokumenten dokumentieren können.

+0

Interessant, enthält das' PlayScala'-Plugin den 'sbt-native-packager'? Ich nehme an, es muss, da ich es nicht wirklich manuell einschließe, –

+0

Ja, es ist automatisch enthalten, so dass Sie Ihre App mit Befehlen wie 'Aktivator dist' verpacken können – Nio

+0

Awesome! Das hat den Trick gemacht! –

Verwandte Themen