Docker容器与主机中的Nexus之间的连接

问题描述

我正在尝试构建一个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 '^]'.

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...