SBT 本机打包程序不会将文件复制到 Docker 映像

Posted

技术标签:

【中文标题】SBT 本机打包程序不会将文件复制到 Docker 映像【英文标题】:SBT native packager does not copy file to Docker image 【发布时间】:2018-12-24 21:19:18 【问题描述】:

我有一个 Akka SBT 项目。它由多个 SBT 子模块组成:

common 包含resources/logback-prod.xml app 依赖于另外两个子模块 postgres

我构建了项目的 docker 镜像。唯一不影响图像的命令是:

...
dockerPackageMappings in Docker += 
   ((resourceDirectory in Compile).value / "logback-prod.xml") -> "/opt/docker/conf/logback-prod.xml"
...

这行代码不会将common子项目中的logback-prod.xml复制到docker/opt/docker/conf/路径

相反,它通过我上面提到的路径创建了一个名为“logback-prod.xml”的目录。

我做错了什么?

【问题讨论】:

【参考方案1】:

通常当你得到一个空目录而不是 Docker 中的文件时,这意味着源文件不存在。 IE。在您的情况下,这可能意味着您的源路径错误。尝试用绝对路径复制文件,看看它是否被正确复制。

【讨论】:

非常感谢您的提示!我会尝试并以我得到的结果回复【参考方案2】:

这行代码解决了问题:

mappings in Docker += (resourceDirectory in common in Compile).value / "logback-prod.xml" -> "/opt/docker/conf/logback-prod.xml",

【讨论】:

以上是关于SBT 本机打包程序不会将文件复制到 Docker 映像的主要内容,如果未能解决你的问题,请参考以下文章

sbt 原生打包器 dockerCommands 复制

Sbt 本机打包程序不创建服务脚本文件

将 docker 插件与 sbt 一起使用

Sbt 本机打包程序找不到 SystemdPlugin

docker镜像打包复制到另外一台内网服务器进行恢复

SBT 任务将属性文件从项目文件夹复制到 webapp