我在 Windows 7 上使用 Docker Toolbox 1.12.3。我已经将 Nexus OSS 3.1.0-04 配置为有一个 Docker 代理存储库来连接到 DockerHub。
当我尝试跑步时
docker run 192.168.161.103:10001/hello-world
我找不到图像。当我查看 Nexus 日志文件时,我收到以下错误:
2016-11-23 17:09:59,244+0000 WARN [qtp253940842-402] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - 错误:GET /v2/hello-world/manifests/latest: -org .sonatype.nexus.repository.docker.internal.V2Exception:需要身份验证 2016-11-23 17:09:59,244+0000 WARN [qtp253940842-402] admin org.sonatype.nexus.repository.docker.internal.Error GET /v2/hello-world/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestUnknownByTag: manifest unknown 2016-11-23 17:09:59,260+0000 WARN [qtp824539] admin org.sonatype.nexus.repository.docker.internal.V2Handlers - 错误:GET /v2/hello-world/manifests/latest: 404 - org.sonatype.nexus.repository.docker.internal.V2Exception$ManifestUnknownByTag:清单未知
Docker 配置了192.168.161.103
(Nexus) 配置为不安全的注册表,因为我使用自签名证书连接到 Nexus。
如何配置 Nexus 3 以使用它期望的身份验证凭据连接到 DockerHub?
众所周知,Nexus 3还没有REST API,这对我来说非常奇怪.我只能使用wget或curl手动下载工件.但是当我使用Maven 3时,所有快照工件都使用如下的时间戳命名:
myartifact-1.0-20161215.141522-4.tar.gz
Run Code Online (Sandbox Code Playgroud)
所以我想知道如何从回购中获取最新的快照?我想自动化工件的下载过程,但随着名称的改变,我没有找到任何方法来实现这一点.
谢谢.
我有一个Nexus 3,我使用"mvn deploy"从Jenkins部署了一些工件.我有很多模块500+.构建看起来像这样:
mvn clean package -DskipTests -DskipITs -T C1
mvn install -DskipTests -DskipITs -T C1
mvn deploy --quiet -DskipTests -DskipITs -Dmaven.validate.skip=true -Dmaven.compile.skip=true -Dmaven.test.skip=true -Dmaven.package.skip=true -Dmaven.integration-test.skip=true -Dmaven.verify.skip=true -T C1
Run Code Online (Sandbox Code Playgroud)
问题是我的工件有时会有时间戳,而元数据有不同的时间戳.通常有1秒的差异.
这是我在nexus上看到的https://mynexus.com/repository/snapshots/com/company/my-artifact/1.0.0-SNAPSHOT/maven-metadata.xml
<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.company</groupId>
<artifactId>my-artifact</artifactId>
<version>1.0.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20170613.140447</timestamp>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20170613140447</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>war</extension>
<value>1.0.0-20170613.140447-1</value>
<updated>20170613140447</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0.0-20170613.140447-1</value>
<updated>20170613140447</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
Run Code Online (Sandbox Code Playgroud)
判断maven-metadata.xml,工件URL应该是这样的:
但事实并非如此.相反,工件位于以下位置:
mvn --version OpenJDK 64位服务器VM Apache Maven 3.5.0(ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T21:39:06 + 02:00)Maven home:/ usr/local/apache-maven Java版本:1.8.0_131,供应商:Oracle Corporation Java home:/ …
我已经设置了我的docker repo,下面是docker-compose.yml
文件:
version: '2'
networks:
prodnetwork:
driver: bridge
services:
nexus:
image: sonatype/nexus3
volumes:
- "nexus-data:/nexus-data"
ports:
- "8081:8081"
- "8082:8082"
- "8083:8083"
- "8084:8084"
- "8085:8085"
- "8086:8086"
- "8087:8087"
- "8088:8088"
networks:
- prodnetwork
jenkins:
image: library/jenkins
ports:
- "8080:8080"
networks:
- prodnetwork
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /opt/jenkins/:/var/lib/jenkins/
depends_on:
- nexus
- sonar
environment:
- NEXUS_PORT=8081
- SONAR_PORT=9000
- SONAR_DB_PORT=5432
sonar:
build: ./sonar
ports:
- "9000:9000"
- "5432:5432"
networks:
- prodnetwork
depends_on:
- sonardb
environment: …
Run Code Online (Sandbox Code Playgroud) 在RHEL7上运行的Nexus OSS 3.7.1-02,Python 2.7.5 / 3.4,麻线版本1.9.1(pkginfo:1.4.1,请求:2.8.1,setuptools:28.8.0,requests-toolbelt:0.8.0, tqdm:4.19.5)
我绝对是Python和Nexus的初学者:)
托管多个PyPI存储库,如下所示:
让我们考虑回购。python包装
1. 注册失败
[root@l4496t dist]# twine register --repository-url http://l5111t.sss.se.com:8081/repository/python-packaging/ python-packaging-2.0.tar.gz
Registering package to http://l5111t.sss.se.com:8081/repository/python-packaging/
Enter your username: devjenkinsuser
Enter your password:
Registering python-packaging-2.0.tar.gz
HTTPError: 500 Server Error: javax.servlet.ServletException: java.lang.IllegalStateException for url: http://l5111t.sss.se.com:8081/repository/python-packaging/
Run Code Online (Sandbox Code Playgroud)
nexus.log:
2018-02-12 13:40:00,002+0000 INFO [quartz-3-thread-19] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repository.storage-facet-cleanup] state change WAITING -> RUNNING
2018-02-12 13:40:00,003+0000 INFO [quartz-3-thread-19] *SYSTEM org.sonatype.nexus.quartz.internal.task.QuartzTaskInfo - Task 'Storage facet cleanup' [repository.storage-facet-cleanup] state change RUNNING -> WAITING (OK)
2018-02-12 …
Run Code Online (Sandbox Code Playgroud) 我最近升级到nexus-3.0.0-M5
我们的存储库服务器,我注意到它有两个问题.
Remote Connection Pending
状态,无论我做什么都不会改变.conf/nexus.properties
,我可以在其中指定,因此所有升级都非常简单明了.但在Nexus3中,我似乎无法配置这些属性.在这方面的任何帮助都是有用的,自从2天以来我一直在墙上敲打.
更多信息
我不是坐在代理后面,所有与我的nexus存储库的连接都是非常直接的身份验证.我使用这个链接来创建一个托管的存储库(如果我遗漏了一些东西)但它被添加得很好,它只是停留在remote connection pending
状态.
我可以将我的本地罐子从我之前的nexus(nexus2.11)创建的整个存储区域中分离出来,但即使是那些大小约为1.4GB.如果我可以自动将nexus3安装到这些罐子的主机上,那么我可以将剩下的时间用于配置远程罐子(真可惜!但只要我的本地罐子在那里,我就会活着)
我正在尝试部署到我们的内部关系存储库。我已经配置了一个 Maven 项目,我可以在其中执行 amvn install
和mvn clean deploy
. 奇怪的是,当我SNAPSHOT
从版本中删除时,我得到了一个404
.
这是我的 pom.xml 适用于SNAPSHOTS
:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>MavenExample</groupId>
<artifactId>com.mycompany</artifactId>
<version>1.0-SNAPSHOT</version>
<distributionManagement>
<repository>
<id>nexus</id>
<url>http://nexus.mycompany.com:8000/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<url>http://nexus.mycompany.com:8000/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.3</version>
<extensions>true</extensions>
<configuration>
<serverId>nexus</serverId>
<nexusUrl>http://nexus.mycompany.com:8000/repository/maven-releases/</nexusUrl>
<!-- update this to the correct id! -->
<stagingProfileId>myid</stagingProfileId>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
当我更改<version>1.0-SNAPSHOT</version>
为<version>1.0</version>
我收到此错误:
[ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:deploy (injected-nexus-deploy) on project explicit-staging-example: Execution injected-nexus-deploy of goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.3:deploy …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下命令来运行我的容器
docker run -d -p 9001:8081 --name nexus -v /Users/user.name/dockerVolume/nexus:/nexus-data sonatype/nexus3
Run Code Online (Sandbox Code Playgroud)
容器启动并立即失败。使用以下日志
mkdir:无法创建目录“../sonatype-work/nexus3/log”:权限被拒绝
mkdir:无法创建目录“../sonatype-work/nexus3/tmp”:权限被拒绝
Java HotSpot(TM) 64 位服务器 VM 警告:无法打开文件 ../sonatype-work/nexus3/log/jvm.log 由于没有这样的文件或目录
我正在按照此链接进行设置,我已授予对 nexus 目录的上述权限。
我也尝试了以下SO 链接,但这也没有帮助我。我仍然遇到同样的错误。
Docker 版本 17.12.0-ce-mac47 (21805)
[编辑] 我确实对主机上的 nexus 文件夹的所有权进行了更改
sudo chown -R 200 ~/dockerVolume/nexus
Run Code Online (Sandbox Code Playgroud) 我使用的是Nexus 3,随着上传工件,blob存储会占用越来越多的磁盘空间。现在,我从发布存储库中删除了一堆不再需要的工件,但是我没有看到消耗的磁盘空间有任何减少。我使用UI手动删除了它们,因为仍然没有自动的方法。
删除工件后,我是否需要执行任何重组工作或类似的工作?或如何减少Blob大小?
我在哪里可以找到包含 Sonatype Nexus 3 可用函数列表的 groovy API 文档?
我看到下面描述的网页
https://help.sonatype.com/repomanager3/rest-and-integration-api/script-api/writing-scripts#app
...但是如何知道在安全之后放什么,例如 security.securitySystem.changePassword?
谢谢。