如何使用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", "-R", "daemon:daemon", "."] USER daemon ENTRYPOINT ["bin/project1"] CMD []
正如你所看到的,它缺less我在build.sbt中放置的东西。 它应该有维护者和暴露端口的线路。
我该如何解决这个问题?
Docker设置必须为每个子项目设置:
lazy val server = Project("server") .enablePlugins(DockerPlugin) .settings(dockerBaseImage := "openjdk:8-jdk") .settings(dockerRepository := Some("registry.gitlab.com")) .settings(dockerExposedPorts := Seq(8080))
有上面定义的项目,您可以使用以下命令发布docker映像:
sbt server/docker:publishLocal
- 无法parsingdocker相关的sbt标签
- 如何dockerize我的玩Scala应用程序?
- 为什么Play项目中的sbt-docker的enablePlugins(DockerPlugin)给出了“错误:对DockerPlugin的引用是不明确的”?
- 构build为DockerContainer时无法访问HTTP Servlet
- 使用Docker运行scala / play项目的问题
- 泊坞窗akka和斯卡拉,应用程序启动和停止后,没有理由
- 播放更改RUNNING_PID文件path
- 如何通过Gradle在Docker容器中运行ScalaApplication?
- docker.io – Docker连接应用程序和数据库容器