【问题标题】:Why is Play application not able to resolve dependencies from inside docker container?为什么 Play 应用程序无法从 docker 容器内部解决依赖关系?
【发布时间】:2014-12-04 13:14:19
【问题描述】:

我正在尝试让 Play Framework 应用程序在 Ubuntu Server 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

最后一个命令会导致尝试解决依赖关系,但只会输出错误、警告和信息,例如You probably access the destination server through a proxy server that is not well configured.

我做错了什么?

【问题讨论】:

  • 如果这是用于生产,而不是使用play run,请使用play dist 并打包一个二进制可分发文件,然后将 that 放入 docker 容器中。您还可以使用 sbt-docker 插件,该插件将使用可分发的内容为您构建和推送您的容器。
  • 感谢您提供这些方法!按照这个容器镜像的使用建议,它也应该按照我上面描述的方式工作。
  • 如果你用 bash 启动一个容器,然后从里面手动运行命令,它可以工作吗?
  • 我在简单的 bash 容器中没有可用的 Play 框架。还是我误会了你?
  • 一开始 play 尝试通过访问类型安全的存储库来解决一些 sbt 依赖项。我猜你是在企业环境中运行它,你必须使用 http 代理来访问网络。所以你必须通过将通常的“http.proxyHost”和“http.proxyPort”属性传递给java(播放)进程来配置这个http代理。

标签: sbt docker playframework-2.2


【解决方案1】:

似乎我的问题与网络有关并且受缓存行为的影响。相同的设置现在可以完美运行。在机器关闭和play clean 之后。 不过还是感谢您的帮助!

【讨论】:

    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 2023-03-31
    • 2016-02-16
    • 2017-02-20
    相关资源
    最近更新 更多