Tag: sbt

使用新的标签添加docker发布步骤到sbt-release过程

我将sbt-release插件集成到我们的项目中,以便将所有构build+发布任务委托给它。 它基本上是我们所需要的,但是我要添加一个额外的ReleaseStep:发布一个Docker镜像。 这是我目前的releaseProcess(按照这个 ): releaseProcess := Seq[ReleaseStep]( checkSnapshotDependencies, inquireVersions, runTest, setReleaseVersion, commitReleaseVersion, tagRelease, //publishArtifacts, releaseStepCommand("docker"), setNextVersion, commitNextVersion //pushChanges, ) (评论推动相关的东西不要破坏任何上游) 除了Docker镜像得到的标签之外,它大部分都很好用。 例如,如果项目是版本0.17.0-SNAPSHOT,而我想发布1.0.0版本,就会发生这样的事情: [develop] ✓ [17:54:22] lithium : ~/devel/some-company/some-app ➤ sbt clean "release skip-tests" [info] Loading project definition from /opt/devel/some-company/some-app/project [info] Updating {file:/opt/devel/some-company/some-app/project/}some-app-build… [info] Resolving org.fusesource.jansi#jansi;1.4 … [info] Done updating. [info] Set current project to someapp […]

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)。

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 && […]

在Docker Alpine Linux容器上运行Scala SBT时的证书exception

我有一个Dockerfile与下面的基本映像: FROM frolvlad/alpine-oraclejdk8:slim 在同一个Dockerfile中,我也运行: activator compile 当我运行$ docker build -t some_name . 在我的MacBook上,SBT步骤按预期工作。 当我在远程Ubuntu主机(AWS上的EC2实例)上运行相同的命令时,通过相同的Dockerfile,我得到了许多证书错误,如下所示: [info] Resolving org.webjars#strip-json-comments;1.0.2-1 … [error] Server access Error: java.security.cert.CertificateException: No name matching repo.typesafe.com found url=https://repo.typesafe.com/typesafe/ivy-releases/org.webjars/strip-json-comments/1.0.2-1/ivys/ivy.xml [error] Server access Error: java.security.cert.CertificateException: No name matching repo.scala-sbt.org found url=https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.webjars/strip-json-comments/1.0.2-1/ivys/ivy.xml [error] Server access Error: java.security.cert.CertificateException: No name matching repo1.maven.org found url=https://repo1.maven.org/maven2/org/webjars/strip-json-comments/1.0.2-1/strip-json-comments-1.0.2-1.pom [info] Resolving com.typesafe.sbt#sbt-rjs;1.0.7 … […]

为什么Play应用程序无法parsingDocker容器内的依赖关系?

我正在尝试在Ubuntu Server 14.04机器上的Docker容器中运行Play Framework应用程序。 $ docker pull mzkrelx/playframework2-dev:2.2.3 $ docker run -i -t -v /path/to/play/app:/opt/workspace -p 9000:9000 mzkrelx/playframework2-dev:2.2.3 bash-4.1# play [play-application] $ run 最后一个命令会导致尝试解决依赖关系,但只会显示错误,警告和信息,例如, You probably access the destination server through a proxy server that is not well configured. 我做错了什么?

Docker推送失败,致命错误msg =“”

使用sbt-docker插件,执行sbt dockerBuildAndPush并在汇编后看到以下输出: … [info] Pushing docker image with name: 'myorg/myrepo' [info] The push refers to a repository [myorg/myrepo] (len: 1) [info] Sending image list [info] Pushing repository myorg/myrepo (1 tags) [info] 511136ea3c5a: Pushing [info] 511136ea3c5a: Image already pushed, skipping [info] 19df420c532f: Pushing [info] 19df420c532f: Image already pushed, skipping … 14 more of these message pairs […]

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 […]

如何通过sbt-release在发布过程中推送/构buildDocker镜像

我是scala的新手。 我用sbt-release来控制发布过程和sbt-docker来构build/发布一个docker镜像。 我可以通过sbt release发布特定版本,并通过sbt docker或者sbt dockerBuildAndPush来构build/发布一个docker镜像。 如果我想发布一个特定的版本,我需要 执行sbt release 请记住发行版本并修改发行版本的docker image标签 执行sbt dockerBuildAndPush 但是太单调乏味了 我想将构build/发布docker镜像添加到发布过程中。 例如: 我在build.sbt定义了我的发布过程 val publishDocker = ReleaseStep(action = st => { // 1. get release version from sbt-release // 2. add release version to docker image tag // 3. push docker image to aws ecr }) releaseProcess := Seq[ReleaseStep]( checkSnapshotDependencies, inquireVersions, […]

在Docker容器中播放2.5.x不通过共享文件夹更新

我正在Docker容器中运行Play Framework 2.5.x的开发环境。 该应用程序的工作原理,我可以通过共享端口在我的浏览器上查看它。 但是,自动更新function不起作用。 从研究中我了解到,这是因为Play的JNotify不会轮询共享文件夹中的文件更改。 我试过这个问题的解决scheme,这是简单的轮询在一个时间间隔通过添加以下build.sbt PlayKeys.fileWatchService := play.runsupport.FileWatchService.sbt(pollInterval.value) 做了这个改变(并确保它被推送通过共享文件夹),使用activator run成功编译并运行服务器。 [info] Done updating. — (Running the application, auto-reloading is enabled) — [info] pcsNettyServer – Listening for HTTP on /0:0:0:0:0:0:0:0:9000 (Server started, use Ctrl+D to stop and go back to the console…) 我可以在我的浏览器中查看它。 但是,在更改文件时,不会发生重新编译,刷新也不会改变任何内容。 停止并启动服务器,但确实显示更改。 我想我可能知道为什么,但我不知道如何解决它。 我读过使用activator ~run应该启动服务器,但使用SBT而不是激活。 当我使用这个命令启动服务器时,它挂在: [info] Set current project to […]

在使用sbt-native-packager构builddocker软件包时使用重复映射

我正在使用sbt-native-packager在Scala中构build基于Akka HTTP应用程序的Docker镜像。 但是,最近它已经开始运行sbt docker:publishLocal时抛出以下错误sbt docker:publishLocal命令: [info] Loading project definition from ~/directory/project [info] Set current project to fortytwo-api (in build file:~/directory/) SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [info] Wrote ~/directory/target/scala-2.11/fortytwo-api_2.11-1.0.pom java.lang.RuntimeException: Duplicate mappings: ~/directory/target/docker/stage/opt/docker/lib/org.scalaz.scalaz-core_2.11-7.1.0.jar from ~/.ivy2/maven-cache/org/scalaz/scalaz-core_2.11/7.1.0/scalaz-core_2.11-7.1.0.jar ~/.ivy2/cache/org.scalaz/scalaz-core_2.11/bundles/scalaz-core_2.11-7.1.0.jar ~/directory/target/docker/stage/opt/docker/lib/com.typesafe.config-1.2.1.jar from ~/.ivy2/maven-cache/com/typesafe/config/1.2.1/config-1.2.1.jar ~/.ivy2/cache/com.typesafe/config/bundles/config-1.2.1.jar ~/directory/target/docker/stage/opt/docker/lib/com.google.protobuf.protobuf-java-2.5.0.jar from […]