Tag: 斯卡拉

sbt程序集生成一个可执行的jar

我有一个多项目的Scala应用程序。 我试图build立一个可执行的jar和寻求帮助。 Root directory — Global settings — Global dependencies — project A — project B通常,我做cd根目录> sbt>项目A>运行 我试图build立一个可执行的jar项目A.我尝试做的组装,但不知道如何可以build立一个可执行的jar只是项目A.当我试图做项目A /组装 – 我碰到No such setting/task 。 在这里可以使用一些帮助来生成一个独立的项目一个jar(我将从我的Dockerfile中运行这个jar)。

在AWS EBS microservice docker环境中使用Kafka,以避免丢失用户请求并处理更多并发点击

目前,我正在使用AWS EBS微服务docker环境来部署在Scala和Akka中编写的微服务。 如果微服务docker的任何人崩溃,并重新启动。 在这种情况下,我们将失去用户的请求,服务将不会返回这些情况下的任何回应。 我目前的架构可以处理高达1000个并发请求,没有任何问题。 为了避免这个问题,我打算使用Kafka存储和检索所有请求和响应。 所以我想使用Kafka来pipe理我的所有Web服务的请求和响应,并包含一个单独的服务或Web套接字来处理所有请求,并将响应再次存储到Kafka。 在这种情况下,如果我的核心进程泊坞窗崩溃或重新启动。 在任何时候都不会失去任何要求和回应。 它将再次开始阅读卡夫卡的请求并处理它。 所有的Web服务都会将请求存储在Kafka的相关主题中,并获得相关响应主题的响应并返回到API响应。 我发现以下库在Scala Web服务中使用Kafka。 https://github.com/akka/reactive-kafka/ 请检查附加的架构图,我将使用它来有效地处理来自客户端应用程序的大量并发请求。 这是一个好方法吗? 我需要改变我的架构中的任何东西吗? 在对Kafka和微服务端口进行了更多的研究之后,我创build了这个架构。 请让我知道这个架构是否有问题。

如何为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运行scala / play项目的问题

我有一个多项目SBT构build。 其中一个子项目是Play项目。 通常我会运行./activator "project website" run来运行Play项目。 我正在尝试build立一个docker开发环境,但是在Dockerfile中找不到合适的CMD 。 我正在尝试使用docker撰写。 我的Dockerfile看起来像: FROM java:latest ADD . /code WORKDIR /code CMD ["./activator", "\"project website\"", "run"] 我躲过了"project website"的报价。 当我运行docker-compose up启动它时,我的项目依赖关系下载,但是失败: wb1_1 | [warn] there were 1 feature warning(s); re-run with -feature for details wb1_1 | [warn] two warnings found wb1_1 | release stage is set to: stage wb1_1 | […]

如何用sbt docker插件复制资源文件

我正在运行一个使用docker的应用程序,该应用程序崩溃,因为我的应用程序无法访问位于src/main/resources文件夹中的文件。 在这里我的文件project/plugins.sbt : addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.4") 我的build.sbt文件: organization := """foo""" name := """bar""" version := "1.0" scalaVersion := "2.11.7" libraryDependencies ++= Seq( "org.apache.kafka" % "kafka_2.10" % "0.10.0.0", "org.scalatest" % "scalatest_2.11" % "3.0.0-M16-SNAP1", "org.scalaz" %% "scalaz-core" % "7.2.5", "com.typesafe.akka" %% "akka-actor" % "2.4.11", "com.typesafe.play" % "play-json_2.11" % "2.4.8", "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0", "com.typesafe" […]

无法parsingdocker相关的sbt标签

我正在尝试将sbt-docker添加到我的游戏网站的构build中,但是我遇到了一个问题。 由于某种原因,底层的docker相关东西都无法解决。 项目/ 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 […]

泊坞窗akka和斯卡拉,应用程序启动和停止后,没有理由

我使用Akka创build了一个Scala应用程序。 当我运行它: scala /Statistics.jar ./server.conf它完美的作品。 但如果我把它放在一个服务器,或者如果我把它放在泊坞窗图像,当我启动它的应用程序启动,然后直接停止后。 这是我的日志: … [DEBUG] [02/01/2017 10:26:13.198] [webserver-akka.actor.default-dispatcher-11] [EventStream(akka://version)] logger log1-Slf4jLogger started [DEBUG] [02/01/2017 10:26:13.185] [subscription-akka.actor.default-dispatcher-4] [akka://subscription/system] now supervising Actor[akka://subscription/system/log1-Slf4jLogger#731298157] [DEBUG] [02/01/2017 10:26:13.201] [subscription-akka.actor.default-dispatcher-4] [akka://subscription/system] now watched by Actor[akka://subscription/] [DEBUG] [02/01/2017 10:26:13.202] [webserver-akka.actor.default-dispatcher-11] [EventStream(akka://version)] Default Loggers started [DEBUG] [02/01/2017 10:26:13.193] [version-akka.actor.default-dispatcher-2] [akka://version/system] now supervising Actor[akka://version/system/log1-Slf4jLogger#1075717908] [DEBUG] [02/01/2017 10:26:13.206] [session-akka.actor.default-dispatcher-3] [akka://session/system/UnhandledMessageForwarder] started […]

已启动的Web应用程序的Docker和http url

我想在Docker中运行我的Web应用程序(用java/scala编写)。 因此,我创build了下面的docker文件: FROM java ADD 0/backend-assembly-1.1.jar /app/backend-assembly-1.1.jar EXPOSE 80 ENTRYPOINT ["java", "-jar", "\/app\/backend-assembly-1.1.jar", "0.0.0.0", "80"] 当我使用docker run命令运行应用程序时,应用程序确实成功启动: [DEBUG] [02/12/2017 21:28:56.940] [tkachuko-web-system-akka.actor.default-dispatcher-2] [akka://tkachuko-web-system/system/IO-TCP/selectors/$a/0] Successfully bound to /0:0:0:0:0:0:0:0:80 我明白,在虚拟机上运行的docker图像,所以我决定找出虚拟机器的IP地址: docker inspect 7cf588493b41 | grep IP 并返回"IPAddress": "172.17.0.2" 。 然而, 0.0.0.0 , localhost或172.17.0.2都可以访问 ,但是当我运行没有docker(从命令行)的一切,一切工作。 你能否指定我的应用程序可以访问哪个地址? 以防万一:我正在使用OS X. 谢谢你的帮助。

如何使用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", […]

SBT增量编译与Docker中的WebJars

我在Play上工作! Angular 2和webjars依赖关系的应用程序。 SBT播放插件和打字稿插件。 我使用渐进式编译,但每次重新编译都需要大量的时间。 我设置了“sbt-optimizer”来检查哪些任务是最长的。 而且我看到,在每次重新编译WebJars几乎所有的重新编译时间。 我无法想象为什么他需要在第一次编译后用静态文件做些什么。 但即使我改变scala文件或旋转模板,所有webjars都没有关系。 UPD:如果我在没有Docker的机器上运行,那么速度是正常的 – 重新编译需要几秒钟。 内部docker – 200秒+。 没有docker-2s的编译信息,在docker-13s里面。 在没有docker的屏幕上的操作在docker500-60000ms内10-300ms。 UPD:添加我的docker文件 FROM openjdk:8 ENV SCALA_VERSION=2.12.1 ENV SBT_VERSION=0.13.13 ENV NODEJS_VERSION=6.10.0 # Install sbt RUN cd /tmp && \ wget https://dl.bintray.com/sbt/native-packages/sbt/$SBT_VERSION/sbt-$SBT_VERSION.zip && \ unzip sbt-$SBT_VERSION.zip -d /usr/local && \ rm sbt-$SBT_VERSION.zip #install nodejs for web jars RUN cd /tmp && […]