Docker – maven在运行时连接到特定的存储库

我有一个镜像,需要在运行时连接到一个仓库,但它接触到Docker容器不能读取位于主机的〜/ .m2 / settings.xml文件。

有什么办法让docker现在在mavenconfiguration文件的位置? 或者实际上将mavenconfiguration文件导入容器?

关于反馈,我们提出了以下解决scheme。

settings.xml被添加到项目构build文件夹,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> ... ... 

现在应用程序可以parsing运行时依赖关系!

您可以通过创build卷映射来完成此操作

 docker run ... -v /path/on/host/settings.xml:/home/me/.m2/settings.xml .... 

另请参见以下示例,其中存储库在容器中运行并通过链接访问:

  • 如何dockerize Maven项目? 以及有多less种方法来完成它?

确保你不要在/ home / me的子目录中启动docker。 或者,当您在/ home / me / myproject中启动docker时,创build一个目录/ home / me / myproject / shareddir并将settings.xml复制到此目录。