Tag: 工人组装

如何使用sbt-docker和sbt-assembly创build一个All-in-One泊坞窗图像

我正在使用sbt-assembly来获得脂肪jar,并使用sbt-docker来创build并推送泊坞窗图像。 我的项目是多模块,它有多个Web服务,用户界面,数据库等。由于我的基础docker图像是大的(800M),我想创build一个包含所有胖jar子的docker图像,以便我可以轻松地使用云testing一个适度的机器。 我把这个解决scheme称为All-FatJars-in-One(AFIO)。 我很难build立这样的AFIOdocker图像,因此这篇文章。 假设这个多模块项目有模块root和mod1,下面是build.scala: val exeProjs = Seq(mod1) lazy val root = Project("root", file(".")). enablePlugins(DockerPlugin). aggregate(exeProjs.map(_.project): _*). dependsOn(exeProjs.map(_ % "compile->test"): _*). settings(basicSettings: _*). settings( docker <<= docker dependsOn assembly, dockerfile in docker := { //get root artifact path like // /home/me/root/target/scala-2.11/root-assembly-0.1-SNAPSHOT.jar val parentArtifact = (assemblyOutputPath in assembly).value new Dockerfile { from("java:8") exeProjs.map(proj => { […]