Skip to content

Look for .dockercfg in user.home instead of DOCKER_CONFIG#959

Closed
i11 wants to merge 1 commit intodocker-java:masterfrom
i11:master
Closed

Look for .dockercfg in user.home instead of DOCKER_CONFIG#959
i11 wants to merge 1 commit intodocker-java:masterfrom
i11:master

Conversation

@i11
Copy link
Copy Markdown

@i11 i11 commented Dec 5, 2017

.dockercfg should be in user's home (~/) and not in DOCKER_CONFIG (~/.docker) directory


This change is Reviewable

@KostyaSha
Copy link
Copy Markdown
Member

CC @fbuecklers

@i11
Copy link
Copy Markdown
Author

i11 commented Dec 5, 2017

sorry for the noise. I couldn't get it to build locally due to:

[WARNING] Error injecting: org.eclipse.virgo.bundlor.maven.plugin.BundlorMojo
java.lang.NoClassDefFoundError: org/eclipse/virgo/bundlor/support/manifestwriter/ManifestWriterFactory
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
	at java.lang.Class.getDeclaredConstructors(Class.java:2020)
	at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
	at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99)
	at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658)
	at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:882)
	at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805)
	at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282)
	at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214)
	at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1006)
	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1038)
	at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051)
	at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
	at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65)
	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115)
	at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176)
	at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126)
	at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
	at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
	at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
	at org.eclipse.sisu.inject.Guice4$1.get(Guice4.java:162)
	at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:81)
	at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
	at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:263)
	at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
	at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:517)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.ClassNotFoundException: org.eclipse.virgo.bundlor.support.manifestwriter.ManifestWriterFactory
	at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
	at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
	... 55 more

So using CI as my testbed here...

@KostyaSha
Copy link
Copy Markdown
Member

sorry for the noise. I couldn't get it to build locally due to:

Disable bundlor support in your IDE

@orzeh
Copy link
Copy Markdown
Contributor

orzeh commented Dec 5, 2017

@i11 please see #948 for workaround

@i11
Copy link
Copy Markdown
Author

i11 commented Dec 5, 2017

will do, thanks!

@codecov-io
Copy link
Copy Markdown

codecov-io commented Dec 5, 2017

Codecov Report

Merging #959 into master will not change coverage.
The diff coverage is 100%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #959   +/-   ##
=======================================
  Coverage   60.19%   60.19%           
=======================================
  Files         421      421           
  Lines        8383     8383           
  Branches      538      538           
=======================================
  Hits         5046     5046           
  Misses       3040     3040           
  Partials      297      297
Impacted Files Coverage Δ
...hub/dockerjava/core/DefaultDockerClientConfig.java 83.03% <100%> (ø) ⬆️
...a/com/github/dockerjava/core/DockerConfigFile.java 59.18% <100%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e80848b...f7148c2. Read the comment docs.

@i11
Copy link
Copy Markdown
Author

i11 commented Dec 5, 2017

Please let me know what you think.
Currently it doesn't respect .dockercfg at all and that causes commands like pull or push to fail if docker registry requires authentication.

@DieterVDW
Copy link
Copy Markdown

Following this!

@fbuecklers
Copy link
Copy Markdown
Contributor

Are the docker client picking up the config file from the home folder either? If I haven't overseen here something you must just configure the docker client to load the config from your home folder.
Therefore you can use the Docker client builder and set the dockerConfigPath to the user home folder. Also the new config is not picked up from home folder. We can thing about it that the client should use the home folder as a default, but then it should work for the old and new configuration path. To just "hardcode" the old configuration path to the home folder is not really a generic solution.

@bsideup
Copy link
Copy Markdown
Member

bsideup commented Jan 26, 2020

@bsideup bsideup closed this Jan 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants