2016-04-25 108 views
2

我正在构建一个开发管道。在我的Java应用程序的成功和测试版本被部署在专用 Maven仓库(Sonatype Nexus)上后,Docker镜像将自动创建。Docker自动构建从Maven Sonatype Nexus存储库下载私有罐子

一旦我的应用程序构建成功,我需要将它发布到某处,并且Docker需要有权下载它并创建一个容器。

我以为Docker访问Nexus Maven存储库,但我没有找到wget如何从私人存储库下载jar。我在Nexus文档中未找到如何通过身份验证参数来访问专用URL。有人知道吗? PS:我也接受更简单的解决方案的建议来完成这个任务。

+0

你所说的*私人仓库的意思是*?您在建设时是否可以通过Docker访问它? – gmaslowski

+0

它是一个私人Sonatype Nexus存储库。需要用户和密码才能访问它。 –

回答

2

我刚刚发现我可以用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标志为卷曲接受重定向(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 
+0

问题,在输出文件中它会去哪里?我想要做这样的事情: RUN curl -o /“http://central.maven.org/maven2/com/newrelic/agent/java/newrelic-agent/3.30.1/newrelic-agent- 3.30.1.jar“-L 将该jar下载到我的docker映像的根目录下吗? – ranma2913

1

如果您正在使用maven

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