问题描述
我正在尝试构建一个Docker映像,该映像可以在执行命令RUN mvn package
时使用安装在笔记本中的Nexus存储库。我将此行添加到了pom.xml:
<repositories>
<repository>
<id>maven-group</id>
<url>http://localhost:8081/repository/maven-group/</url>
</repository>
</repositories>
但是,应将localhost替换为运行Nexus的主机名,但它应位于容器主机(我的个人计算机)上。我应该在网址中写些什么来指向我的仓库?我的笔记本主机名无法在容器内解析。还是有其他方法可以连接到我的Nexus存储库?
解决方法
我应该在网址中写些什么来指向我的仓库?
您可以在Gateway
命令中放置docker inspect
值:
$ docker inspect your_docker_container
在网络部分的命令输出的最底部有:(我的容器的输出,您的容器可以不同)
"Gateway": "172.20.0.1"
因此,您的示例:
<repositories>
<repository>
<id>maven-group</id>
<url>http://172.20.0.1:8081/repository/maven-group/</url>
</repository>
</repositories>
要确保100%确保可以使用telnet在此网关计算机中打开8081端口(从容器中运行):
$ telnet 172.20.0.1 8081
Trying 172.20.0.1...
Connected to 172.20.0.1.
Escape character is '^]'.