【发布时间】:2019-07-12 15:00:26
【问题描述】:
我有一个尝试在 Docker 容器上运行的 Play 应用程序(使用 Scala 构建)。
以下是我用来启动容器以运行 sbt 命令的 docker-compose.yml 和 build.sbt 的部分。
↓ docker-compose.yml
version: '3.7'
services:
service-name:
entrypoint: >
sh -c 'cd /root/project_dir && sbt service/run'
volumes:
- ./project:/root/project_dir/project
- ./service_src:/root/project_dir/service_src
- ./build.sbt:/root/project_dir/build.sbt
- ./.ivy2/:/root/.ivy2/
- ./.sbt/:/root/.sbt/
↓ build.sbt
lazy val service = project
.in(file("./service_src"))
:
)
当我使用此设置启动容器时,由于某种原因,我最终收到以下错误
[error] java.nio.file.NoSuchFileException: /root/.ivy2/cache/org.webjars.npm/wrappy/jars/wrappy-1.0.2.jar
实际存在于缓存中。
我应该在哪里寻找可能导致这种情况的原因?
更新:
通过观察,我发现在容器中挂载 Windows 主机目录似乎是导致问题的原因。
通过docker copy复制文件/目录而不是安装,可以消除错误...
我怎样才能使用卷来达到同样的效果,或者这是无法做到的事情?
【问题讨论】: