Giter Club home page Giter Club logo

Comments (7)

tlunter avatar tlunter commented on July 2, 2024

Hi @Soulou,

Can you show me how you were trying? I am looking at the docker-cli source code and it looks like all they do is decode the registry url part of image name (repository) and set that as the ServerAddress of the AuthConfig object.

https://github.com/dotcloud/docker/blob/master/registry/registry.go#L81

If you set the Docker.creds to:

{
  'username' => '',
  'password' => '',
  'email' => '',
  'serveraddress' => ''
}

where the data matches up with the private registry, it should work. I will load up a local docker-registry and try it out though.

from docker-api.

Soulou avatar Soulou commented on July 2, 2024

Thank for your answer. A private repo may not have any authentication, this is why I didn't really know how to handle that.

I've onlly tried myimage.push (because I was thinking that the part which identify the registry `registry.example.org/myimage) was managed by the docker daemon.

But I've just seen that we can do docker push registry.example.com/myimage -r otherregistry.example2.com So this part has changed.

from docker-api.

Soulou avatar Soulou commented on July 2, 2024
Config['registry] = "http://myregistry.example.org"
Docker.authenticate! username: "", password: "", email: "", serveraddress: Config['registry']

Exception:

`rescue in authenticate!': Docker::Error::AuthenticationError (Docker::Error::AuthenticationError)
remote:     from /home/dev/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/docker-api-1.7.0/lib/docker.rb:60:in `authenticate!'

Server logs:

2013/11/09 19:29:15 POST /v1.6/auth
[error] api.go:1025 Error: Server Error: Post http://myregistry.example.orgusers/: dial tcp: lookup myregistry.example.orgusers on [10.0.2.3]:53: server misbehaving
[error] api.go:79 HTTP Error: statusCode=500 Server Error: Post http://myregistry.example.orgusers/: dial tcp: lookup myregistry.example.orgusers on [10.0.2.3]:53: server misbehaving

The suffix "users" is added, I'm going to have a look to docker code.

from docker-api.

Soulou avatar Soulou commented on July 2, 2024

Ok, the '/' looks mandatory in my

Config['registry] = "http://myregistry.example.org" → Config['registry] = "http://myregistry.example.org/"

In this case, the docker daemon contact the registry and ask for the user

Docker daemon output:

[error] api.go:1025 Error: Unexpected status code [404] : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server.  If you entered the URL manually please check your spelling and try again.</p>

[error] api.go:79 HTTP Error: statusCode=500 Unexpected status code [404] : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server.  If you entered the URL manually please check your spelling and try again.</p>

Registry output:

172.17.42.1 - - [09/Nov/2013:19:37:48] "POST /users/ HTTP/1.1" 404 233 "-" "Go 1.1 package http"
2013-11-09 19:37:48,442 INFO: 172.17.42.1 - - [09/Nov/2013:19:37:48] "POST /users/ HTTP/1.1" 404 233 "-" "Go 1.1 package http"

from docker-api.

Soulou avatar Soulou commented on July 2, 2024

When I'm directly using docker push their is no /auth request (so no request /users/ on the registry) and it works well.

from docker-api.

tlunter avatar tlunter commented on July 2, 2024

Why not just set Docker.creds instead of trying to use Docker.authenticate! ?

Try:

Docker.config = { username: "", password: "", email: "", serveraddress: Config['registry'] }

and then with your image do image.push.

from docker-api.

Soulou avatar Soulou commented on July 2, 2024

Thank you, it works well =)

from docker-api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.