Docker - Maven 在运行时连接到特定的存储库
Docker - maven connect to specific repository in runtime
我有一个图像需要在运行时连接到存储库,但它发现 Docker 容器无法读取 ~/.m2/settings.xml 文件位于主机中。
有没有办法让docker现在maven配置文件所在的位置?或者实际将maven配置文件导入到容器中?
您可以通过创建卷映射来做到这一点
docker run ... -v /path/on/host/settings.xml:/home/me/.m2/settings.xml ....
另请参阅以下示例,其中存储库位于 运行 容器内并通过 link 访问:
确保您没有在 /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> ...
...
现在应用程序可以解决运行时间依赖性!
我有一个图像需要在运行时连接到存储库,但它发现 Docker 容器无法读取 ~/.m2/settings.xml 文件位于主机中。
有没有办法让docker现在maven配置文件所在的位置?或者实际将maven配置文件导入到容器中?
您可以通过创建卷映射来做到这一点
docker run ... -v /path/on/host/settings.xml:/home/me/.m2/settings.xml ....
另请参阅以下示例,其中存储库位于 运行 容器内并通过 link 访问:
确保您没有在 /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> ...
...
现在应用程序可以解决运行时间依赖性!