Sbt 为什么Play应用程序无法从docker容器内部解析依赖关系?

Sbt 为什么Play应用程序无法从docker容器内部解析依赖关系?,sbt,docker,playframework-2.2,Sbt,Docker,Playframework 2.2,我试图让Play Framework应用程序在Ubuntu服务器14.04机器上的docker容器中运行 $ 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 最后一

我试图让Play Framework应用程序在Ubuntu服务器14.04机器上的docker容器中运行

$ 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
最后一个命令会导致尝试解析依赖项,但只会发出错误、警告和信息,例如您可能通过未正确配置的代理服务器访问目标服务器


我做错了什么?

似乎我的问题与网络有关,并且受到缓存行为的影响。同样的设置现在可以完美地工作。机器停机后,进行清洁。
谢谢你的帮助

如果这是用于生产,而不是使用play-run,请使用play-dist并打包一个二进制可分发文件,然后将其放入docker容器中。您还可以使用sbt docker插件,该插件将为您构建和推送可分发的容器。感谢您提供这些方法!按照这个容器映像的使用说明,它也应该按照我上面描述的方式工作。如果您使用bash启动一个容器并从内部手动运行该命令,它工作吗?我没有简单bash容器中可用的Play框架。还是我误解了你的意思?起初,play试图通过访问类型安全存储库来解决一些sbt依赖关系。我猜您是在一个必须使用http代理来访问web的公司环境中运行此功能的。因此,您必须通过将通常的“http.proxyHost”和“http.proxyPort”属性传递给java播放进程来配置此http代理。