gpt4 book ai didi

windows - sbt 在运行 Play docker 容器时下载失败

转载 作者:行者123 更新时间:2023-12-02 19:39:35 30 4
gpt4 key购买 nike

我已经成功地为 play-java 构建了我的 docker 镜像。 .但是在尝试使用 docker run -p 0.0.0.0:9000:9000 egima/play activator run 为其生成容器时sbt 无法下载一个特定的依赖项。日志如下所示:

==== Maven2 Local: tried
file:/root/.m2/repository/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar
==== Apache Repository: tried https://repository.apache.org/content/repositories/releases/org/sonatype/sisu/sisu-guice/3.1.0/sisu-guice-3.1.0.jar[0m
::::::::::::::::::::::::::::::::::::::::::::::
:: FAILED DOWNLOADS ::
:: ^ see resolution messages for details ^ ::
::::::::::::::::::::::::::::::::::::::::::::::
:: org.sonatype.sisu#sisu-guice;3.1.0!sisu-guice.jar
::::::::::::::::::::::::::::::::::::::::::::::

注意 tried存储库。我关注了 all the different variants包括 local我机器上的 maven 存储库,我从日志中确认 sbt 根据我在本地 maven 存储库中指定的内容进行检查,但没有运气。
我在两个 build.sbt 中的解析器和 /project/plugins.sbt :
resolvers ++=Seq(
Resolver.sonatypeRepo("public"),
Resolver.mavenLocal,
"Apache Repository" at "https://repository.apache.org/content/repositories/releases/"
)

我还检查了我的本地 maven 存储库以确保存在缺少的依赖项。什么不见​​了?

最佳答案

VonC在评论部分建议在 Dockerfile 中添加以下步骤:

RUN ln -s /C/Users/me/.m2 /root/.m2

我相信这个命令应该在 $MAVEN_HOME 之间建立软链接(soft link)在我的主机上和解析路径 Resolver.mavenLocal解析为 /root/.m2 .这应该是解决方案。但是,尝试后发现共享路径 /c/Users/me (大写 C 不可见,不知道为什么)在 VM 内可见,但在容器内不可见。因此,在 Dockerfile 中包含该行会给我:
ln:cannot access /c/Users/me/.m2: No such file or directory

此外,即使执行 RUN ls /root会给我一个类似的错误,这意味着此时目标路径也不存在。
我自己的推论是,解决方案在于通过任何可用的方法将主机路径安装到目标路径上,我认为这是本论坛上一个很好讨论的话题。针对我的特殊情况 执行挂载 docker run期间与 -v标志解决了这个问题。
这是我使用的确切命令:
docker run -v /c/Users/me/.m2:/root/.m2 -p 0.0.0.0:9000:9000 egima/play activator run

我写了 a complete blog post关于他的那些需要更多信息的人。

关于windows - sbt 在运行 Play docker 容器时下载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39636072/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com