【问题标题】:Connection between Docker container and Nexus in host machineDocker 容器与主机中 Nexus 之间的连接
【发布时间】:2020-12-06 05:44:04
【问题描述】:

我正在尝试构建一个 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 的主机名,但它位于容器主机(我的个人计算机)上。我应该在 url 中写什么来指向我的仓库?我的笔记本主机名无法从容器中解析。或者有没有其他方法可以连接到我的 Nexus 存储库?

【问题讨论】:

标签: docker maven containers pom.xml nexus


【解决方案1】:

我应该在 url 中写什么来指向我的 repo?

您可以将来自docker inspect 命令的Gateway 值放在那里:

$ 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 '^]'.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 2019-06-22
    • 1970-01-01
    • 2021-03-10
    相关资源
    最近更新 更多