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]
我正在构建开发管道。 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]