【发布时间】:2015-03-20 15:21:20
【问题描述】:
我有一个图像需要在运行时连接到存储库,但它表明 Docker 容器无法读取位于主机中的 ~/.m2/settings.xml 文件。
有什么办法可以让docker现在maven配置文件所在的位置?还是真的将maven配置文件导入到容器中?
【问题讨论】:
我有一个图像需要在运行时连接到存储库,但它表明 Docker 容器无法读取位于主机中的 ~/.m2/settings.xml 文件。
有什么办法可以让docker现在maven配置文件所在的位置?还是真的将maven配置文件导入到容器中?
【问题讨论】:
您可以通过创建卷映射来做到这一点
docker run ... -v /path/on/host/settings.xml:/home/me/.m2/settings.xml ....
另请参阅以下示例,其中存储库在容器中运行并通过链接访问:
【讨论】:
-v /home/user/.m2/settings.xml,但我得到了相同的响应(没有在 repo 中找到 jar)。你还有其他线索吗?我需要在容器中安装 maven 吗?
确保不要在 /home/me 的子目录中启动 docker。 或者,当您在 /home/me/myproject 中启动 docker 时, 创建一个目录 /home/me/myproject/shareddir 并将 settings.xml 复制到该目录。
【讨论】:
关于反馈,我们提出了以下解决方案。
settings.xml 被添加到项目构建文件夹中,DockerFile 如下所示:
...
RUN apt-get update
RUN apt-get install -y maven
ADD /path/to/settings.xml /root/.m2/settings.xml
...
在运行脚本文件中我们添加了存储库(这将写入 /etc/hosts):
...
docker run --add-host=myrepo.mycompany.com:<ip> ...
...
现在应用程序可以解决运行时依赖关系了!
【讨论】: