Since the update of our 3 Nexus Repository to version 3.19.0-01
|Edition|OSS| |Build Revision|2dd186f4225540631fb7aac1a936ae61f7337f26| |Build Timestamp|2019-09-25-1001-23448|
we can no longer pull images.
We have 2 local nexus, configured as proxy of a main nexus on cloud.
docker pull foo/image:tag
result in
Error response from daemon: received unexpected HTTP status: 500 Server Error
docker version is Docker version 19.03.2, build 6a30dfca03
on a linux (ubuntu 19.10
) box
The nexus3 proxy logs :
2019-10-03 09:00:04,607+0000 WARN [qtp172103249-351] docker org.sonatype.nexus.repository.docker.internal.V2Handlers - Error: GET /v2/xxxx/yyyyy/manifests/0.0.16 java.lang.NullPointerException: null at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.getManifest(DockerProxyFacetImpl.java:921) at org.sonatype.nexus.repository.docker.internal.DockerProxyFacetImpl.getCachedContent(DockerProxyFacetImpl.java:310) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.maybeGetCachedContent(ProxyFacetSupport.java:369) at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:229) at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:52) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.handlers.LastDownloadedHandler.handle(LastDownloadedHandler.java:63) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) at org.sonatype.nexus.repository.view.Context$proceed.call(Unknown Source) at org.sonatype.nexus.repository.docker.internal.V2Handlers$_closure16.doCall(V2Handlers.groovy:273) at sun.reflect.GeneratedMethodAccessor383.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034) at groovy.lang.Closure.call(Closure.java:418) at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54) at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124) at com.sun.proxy.$Proxy189.handle(Unknown Source) at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80)
when I remove the image (docker rmi
) I can pull successfully. But when the image is already loaded in my box I can no longer pull it.
I have found a workaround : I have disabled the support of v1 api in my nexus3 proxy repositiory configation. Docker pull was then ok!
I have then re-enabled support of v1 api, and docker pull was still ok.
May be you only need to re save you docker repo configuration.
Version 3.19.0 add support of a new option for docker proxy (NEXUS-19120) : Foreign Layers.
May be the config file has to be updated …
Still, just making a modif + save + restore original config + save should do the trick. Hopefully.