Tag: sbt native packager

sbt-native-packager scala play dockerfile没有运行默认configuration

我正在尝试使用sbt-native-packager来生成我的Scala应用程序的Docker镜像,我遵循了http://www.scala-sbt.org/sbt-native-packager/formats/docker中描述的步骤html的 这是我的configuration: 在我的plugins.sbt我添加了sbt本地包装器的依赖关系: // SBT Native addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.1") 在我的build.sbt我添加了通用和docker的插件: .enablePlugins(PlayScala, JavaAppPackaging) 我还添加了一些额外的属性: javaOptions in Universal ++= Seq( // JVM memory tuning "-J-Xmx1024m", "-J-Xms512m", // Since play uses separate pidfile we have to provide it with a proper path // name of the pid file must be play.pid s"-Dpidfile.path=/var/run/${packageName.value}/play.pid", // Use separate configuration […]

通过sbt任务拉取postgres-docker图片

我想在运行Webtesting之前下载并初始化postgres docker镜像。 因为这个,我想创build一个任务。 这个任务将在我的testing开始运行之后初始化docker。 我正在使用sbt-native-packager。 但是我不能成功。 这是我的代码示例。 能否请你帮忙? 谢谢。 object DockerPostgressSupport extends AutoPlugin { object autoImport { val dockerPostgresImageDownloadTask: TaskKey[String] = taskKey[String]("dockerPostgresImageDownloadTask") val dockerPostgresImageDownloadTRunCommandTask: TaskKey[String] = taskKey[String]("dockerPostgresImageDownloadTRunCommandTask") val dockerDownloadPostgressImageCmd: SettingKey[String] = SettingKey[String]("the command that is run for download postgres docker image") } import autoImport._ override def projectSettings = Seq( dockerDownloadPostgressImageCmd := "docker pull postgres:9.6.2-alpine", dockerPostgresImageDownloadTRunCommandTask […]

如何为sbt本地包装器的DockerPlugin设置基本映像?

我想dockerify scala应用程序。 我使用sbt-native-packager ,并在本地通过构build图像 sbt docker:publishLocal 我很惊讶地发现它会使用: openjdk:latest 作为其基本形象。 我喜欢将Docker镜像指向特定版本,并且我知道我的应用程序当前需要Java 8,并且会在Java 9上崩溃; 而latest标签可能会指向未来的新版本。 我对Docker插件如何通过sbt-native-packager工作感到困惑。 为什么使用openjdk:latest作为其基础? 我怎么能把它设置为不同的东西,例如: openjdk/8-jdk ?

如何使用docker任务与sbt多项目

我有一个SBT多项目,我有2个不同的游戏应用程序。 我想创build2个docker输出不只是1。 在我的build.sbt文件中,我有一些docker设置,但是当我运行docker任务时,由于DockerFile没有configuration任何东西,所以没有使用这些设置。 我的build.sbt看起来像: lazy val project1 = (project in file("project1")). .. .enablePlugins(…., DockerPlugin) lazy val project2 = (project in file("project2")). .. .enablePlugins(…., DockerPlugin) // docker maintainer in Docker := "mr. docker" dockerExposedPorts := Seq(9000) dockerBaseImage := "java:latest" 我首先进入我的具体项目来执行任务: project project2 docker:stage 目标/ docker / Dockerfile中生成的docker文件是: FROM java:latest WORKDIR /opt/docker ADD opt /opt RUN ["chown", […]

适用于Mac OS X的Docker的sbt-native-packager

嘿大家我有一个问题,使用本地包装器创build一个Scalatra Web应用程序的docker图像。 我的build.sbt文件的相关部分在这里: enablePlugins(JettyPlugin) enablePlugins(JavaAppPackaging) enablePlugins(DockerPlugin) // for Docker, the "." location where it is looking for files is in target/docker/stage. For the COPY command to work, // the sbt Docker packager has to know this file resides in ../../scala-2.11 so include this mapping //mappings in Docker += file("../../scala-2.11/direct2-batch-match_2.11-0.1.0-SNAPSHOT.war") -> "direct2-batch-match_2.11-0.1.0-SNAPSHOT.war" dockerCommands := Seq(Cmd("FROM","tomcat:8.0.20-jre8"), Cmd("LABEL", […]

在Mac OS上的Docker上运行REST应用程序时的空响应

我已经使用SBT创build了一个简单的scala应用程序(akka-http REST服务)。 这是应用程序的主要类: object UserApiWebService extends App { override def main(args: Array[String]): Unit = { implicit val system: ActorSystem = ActorSystem("user-api-system") implicit val executionContext: ExecutionContext = system.dispatcher implicit val materializer: ActorMaterializer = ActorMaterializer() val userApiRoute = new UserApiRoute val userApiRoutes = new UserApiRoutes(userApiRoute) val config = ConfigFactory.load() val host = config.getString("http.host") val port = config.getInt("http.port") […]

来自SBT的多个docker图像

我正在使用sbt native packager为Spray API应用程序生成sbt native packager docker image 。 代码只是教程中最简单的版本。 现在我想重用一些案例类,并在后端创build作业stream程加载数据。 父项目 *通用协议 * API *工作 如何从一个项目生成两个docker images ?

如何将-mem传递给dockerized Play应用程序

我正在使用Play! 2.5。 当我运行我的应用程序时,我使用-mem 4000来运行它。如何将此选项发送到使用activator docker:publish docker创build的Docker镜像activator docker:publish ? 我查看了激活码activator show dockerCommands指定的命令,并且我看到ENTRYPOINT是bin / myappname – 我可以编辑它来添加-mem 4000吗? 或者我需要使用-Xmx和-Xms? 我把这些选项放在别的地方吗? 我已经看到了一些application.ini文件的引用,但我不知道该放在Play!应用中的位置。

sbt-native-packager docker:如何在/ etc / hosts中添加条目

我正在使用sbt-native-packager的docker插件来构build一个Docker镜像。 我希望我的映像在/ etc / hosts中有一个额外的条目。 我已经尝试了以下内容: dockerCommands in Docker := dockerCommands.value.flatMap { case cmd@Cmd("FROM", _) => List(Cmd("FROM", "anapsix/alpine-java")) ++ List( Cmd("ENV", "JAVA_MIN_MEM", "1024m"), Cmd("RUN", "echo 8.8.8.8 foo >> /etc/hosts") ) } 不幸的是,似乎没有工作。 当我启动一个基于这个映像的容器时,/ etc / hosts没有额外的条目。 它看起来像是实际上写文件,因为我尝试了下面的代码: …. Cmd("RUN", "echo 8.8.8.8 foo >> /etc/hosts; ping -c 4 foo") …. 我得到如下输出: [info] Step 9/15 : RUN […]

sbt-native-packager在Jenkins的docker输出

我有一个sbt-native-packager 1.0.2插件的SBT项目,如果我在本地运行sbt docker:publish,那么工作正常。 当我在使用sbt插件的Jenkins中执行相同的操作时,出现以下错误: [info] Step 2 : RUN dnf -y install java-1.8.0-openjdk-headless wget sed ca-certificates openssl [info] —> Running in 1b3918fcffa6 [info] exec: "dnf -y install java-1.8.0-openjdk-headless wget sed ca-certificates openssl": executable file not found in $PATH [info] Removing intermediate container 1b3918fcffa6 [error] [8] System error: exec: "dnf -y install java-1.8.0-openjdk-headless wget sed ca-certificates […]