Docker 自动构建从 Maven Sonatype Nexus 存储库下载私有 jar

Docker Automated build downloading private jars from a Maven Sonatype Nexus repository

我正在构建开发管道。 Docker 图像将在我的 java 应用程序成功且经过测试的版本部署到 private Maven 存储库(Sonatype Nexus)后自动创建。

成功构建我的应用程序后,我需要将其发布到某个地方,Docker 需要有权下载它并创建容器。

我考虑过 Docker 访问 Nexus Maven 存储库,但我没有找到如何 wget 私有存储库 下载 jar。我没有在 Nexus 文档中找到如何传递身份验证参数来访问私有 URL。有人知道吗?

PS:我也接受更简单的解决方案的建议。

我刚刚发现我可以使用 cURL 来做到这一点。示例:

curl -u username:password -o myapp.war "http://nexus.mycompany.com/service/local/artifact/maven/redirect?r=snapshots&g=com.company&a=MyApp&v=1.0-SNAPSHOT&p=war" -L

其中 -L 标志是 cURL 接受重定向(301 响应)。

所以,在 docker-compose.yml 我有这样一行:

RUN curl -u username:password -o myapp.war "http://nexus.mycompany.com/service/local/artifact/maven/redirect?r=snapshots&g=com.company&a=MyApp&v=1.0-SNAPSHOT&p=war" -L

如果你使用的是 maven

mvn dependency:copy -Dartifact=groupId:artifactId:version[:packaging][:classifier] -DoutputDirectory=[target] -Dusername=[username] -Dpassword=[password]