使用sbt将目录添加到docker镜像中(在Lagom 1.4上)

时间:2018-02-06 10:29:15

标签: docker sbt sbt-docker

有人可以帮助了解如何将文件系统文件夹添加到泊坞窗图像中...例如我想将/ opt / app / conf添加到路径/ opt / docker / conf的docker镜像中。 build.sbt的片段如下:

dockerCommands :=
  dockerCommands.value.flatMap {
    case cmd@Cmd("FROM", ) => List(cmd, Cmd("RUN", "apk add --no-cache bash"))
    case ExecCmd("ENTRYPOINT", args @ *) => Seq(Cmd("ENTRYPOINT", args.mkString(" ")))
    case v => Seq(v)
},

1 个答案:

答案 0 :(得分:0)

我假设你正在使用原生包装工具。您需要将所需的文件映射到docker上下文中。调用

mappings in Universal ++= Seq(
  file("/opt/app/conf/<filename>") -> "app/conf/<filename>"
)

会将给定文件放入app/conf下的docker上下文中。

但是,我建议不要映射/opt/app,因为这需要任何构建映像的计算机都具有正确的路径和文件。相反,请考虑将配置添加到src/main/resources路径并将其映射到。

mappings in Universal ++= Seq(
  (baseDirectory.value / "src/main/resource/app/conf/<filename>") -> "app/conf/<filename>"
)

我更喜欢显式包含文件(没有目录递归),但您应该能够使用Paths来合并递归。