Tag: sbt native packager

sbt-native-packager是可以使用本地文件系统泊坞窗图像作为基础图像

目前使用的是sbt-native-packager v 1.2.1,默认情况下使用openjdk基本的docker镜像,如http://www.scala-sbt.org/sbt-native-packager/formats/docker.html 环境设置 “dockerBaseImage用作运行应用程序的基础的映像,它应该在chown,mkdir的path中包含二进制文件,有一个可发现的java二进制文件,并包含由daemonUser(默认情况下,守护进程)configuration的用户。 我想知道是否有可能从文件系统使用本地映像而不是简单地指向“./my-Dockerfile”之类的东西?

如何让sbt-native-packager结合两层docker图像

我使用sbt-native-packager从Scala应用程序构buildDocker镜像。 在结果图像中有两层相似的尺寸: docker history –no-trunc docker.example.com/scala-app … b49580a36beb6c7cd020ad006954f245aebf82041d3e79eff1517fdbf58ae6cd About an hour ago chown -R daemon:daemon . 125.2 MB f12b3a929ded4161044642e117114b57889613d77186a0a727862ab5a44af5e3 About an hour ago /bin/sh -c #(nop) ADD dir:678c325d24285ae96f682c6abc3d71cc8a17ee6267a2db4fff232fcaaa5dec13 in /opt 125.2 MB … 我假设这两层只在所有权上有所不同(chown -R守护进程:守护进程)。 问题是,他们都在下拉过程中被下载。 有没有办法将这两个图层合并为一个图像大小?

sbt-native-packager与Docker和Elastic Beanstalk合作

我正在使用sbt-native-packager将我的Pl​​ayframework应用程序部署为Elastic Beanstalk作为Docker容器。 这一切都工作得很好,但我需要定制ELB实例。 亚马逊文件在这里 ,你通过创build一个.config文件“在你的源包的.ebextensions顶级目录中。 看起来很简单,但我不知道什么是最好的方式来让本地包打包机拿起我的.ebextensions目录,并把它放在正确的地方。 我知道是否使用命令docker build -t my-docker-app /my-project-root创build了捆绑包我将该目录粘贴在my-project-root ,但是我很困惑与原生打包。 提前致谢!

有没有办法从两个jar子,如每个jar子位于它自己的层build立docker的形象

我使用sbt-native-packager和DockerPlugin来构build一个应用程序。 这个应用程序由两个项目组成:一个频繁变化,另一个几乎是静态的。 构build看起来像这样: lazy val root = myProject("my-backend", ".") .enablePlugins(JavaAppPackaging, DockerPlugin).settings(dockerSettings: _*) .settings(dockerExposedPorts in Docker := List(80, 8080)) .dependsOn(servicesProject, coreProject) … 有没有办法build立一个每个项目(servicesProject,coreProject)将在一个单独的图层的Docker镜像? 在这种情况下,不需要一直下载静态/核心层。

在Play JPA项目中使用sbt-native-packager将自定义文件夹添加到Docker

我正在开发一个JPA + Playframework 2.5.x项目,将其打包为Docker镜像。 我想强制添加除conf文件夹下的一个文件(META-INF / persistence.xml)到docker输出的所有文件 目前我做了以下工作: mappings in Docker += file("conf/base/application.conf") -> "opt/docker/conf/base/application.conf" mappings in Docker += file("conf/base/default-client.conf") -> "opt/docker/conf/base/default-client.conf" mappings in Docker += file("conf/prod/application.conf") -> "opt/docker/conf/prod/application.conf" mappings in Docker += file("conf/prod/logback.xml") -> "opt/docker/conf/prod/logback.xml" mappings in Docker += file("conf/stage/application.conf") -> "opt/docker/conf/stage/application.conf" mappings in Docker += file("conf/stage/logback.xml") -> "opt/docker/conf/stage/logback.xml" mappings in Docker += file("conf/local/application.conf") […]

为什么sbt-native-packager将bin / start作为目录而不是脚本?

我正在使用sbt-native-packager和sbt-docker来生成本教程中描述的Docker镜像。 Docker镜像不会运行(权限被拒绝),检查结果是bin/start被创build为一个空目录。 dan@cobalt:~/projects/confabulous/deva$ ls -l target/universal/stage/bin/ total 24 -rwxrw-r– 1 dan dan 11591 Aug 5 20:44 deva -rw-rw-r– 1 dan dan 6211 Aug 5 20:44 deva.bat drwxrwxr-x 2 dan dan 4096 Dec 31 1969 start 由于某种原因,它也有一个空的时间戳。 为什么它被创build为一个目录而不是一个shell脚本? 这是我的plugins.sbt: addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.4") addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4") addSbtPlugin("io.spray" % "sbt-revolver" % "0.7.1") addSbtPlugin("se.marcuslonnberg" % […]

你在哪里创build在Docker中运行的应用程序的日志?

你在哪里创buildDocker中运行的应用程序的日志,以便我可以稍后将它们映射到主机系统? 目前还不清楚我是否应该在没有root权限的情况下创build日志(然后是哪一个?),或者我可以chown我需要的目录。 我尝试使用/var/log/case和/opt/case/logs没有成功。 这是我缩小的SBT脚本 object build extends Build { lazy val root = Project( id = "case-server", base = file("."), settings = Defaults.coreDefaultSettings ++ graphSettings ++ Revolver.settings ++ Seq( version := "1.15", scalaVersion := "2.11.7", libraryDependencies ++= { val akkaV = "2.4.1" val akkaStreamV = "2.0.1" val scalaTestV = "2.2.5" Seq( "com.typesafe.scala-logging" %% "scala-logging-slf4j" % […]

Docker:getcwd:不能访问父目录

我有一个Java应用程序,通过sbt-native-packager打包到docker容器。 当在本地机器或其他服务器上testing时,容器启动就好了。 在Azure上的CoreOS机器上,我得到: shell-init: error retrieving current directory: getcwd: cannot access parent directories: Success chdir: error retrieving current directory: getcwd: cannot access parent directories: No child processes pwd: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory chdir: error retrieving current directory: getcwd: cannot access parent directories: No child processes […]

Docker中的Sbt-native-packager&AutoPlugin&Mappings

此configuration适用于Universal,但不适用于Docker: sbt-native-packager通用configuration: mappings in Universal += { // logic like this belongs into an AutoPlugin val confFile = buildEnv.value match { case BuildEnv.Development => "dev.conf" case BuildEnv.Test => "test.conf" case BuildEnv.Production => "prod.conf" } ((resourceDirectory in Compile).value / confFile) -> "conf/application.conf"} sbt-native-packager Dockerconfiguration: mappings in Docker += { // logic like this belongs into an […]

使用docker运行Java 9应用程序不起作用 – UnsupportedClassVersionError

我将我的应用程序从Java 8更改为Java 9.将Windows系统环境variables(path)和JAVA_HOME更改为Java 9(jdk-9.0.1)。 在IDE(IntelliJ)中运行应用程序时,它工作正常。 它也编译没有问题与sbt。 只用docker运行应用程序是行不通的。 应用程序似乎用Java 9成功编译,但是docker试图用Java 8来运行它(这是我从exception消息中读取的)。 命令: sbt docker:publish docker run –rm -p 9000:9000 eu.gcr.io/the-repository-name/the-image-name:1.0 我得到以下错误: Exception in thread "main" java.lang.UnsupportedClassVersionError: Module has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to […]