docker-archive / docker-registry

This is **DEPRECATED**! Please go to https://github.com/docker/distribution
Apache License 2.0
2.88k stars 877 forks source link

S3 S3ResponseError when pushing a box #984

Closed hammi85 closed 9 years ago

hammi85 commented 9 years ago

Hi,

I almost googled the entire day to figure out what is wrong with my docker registry but I just can't push to S3. When I use it locally everything is fine but if I configure S3, nothing works anymore.

here is my S3 configuration: "SETTINGS_FLAVOR": "s3", "AWS_BUCKET": "bucket", "STORAGE_PATH": "/registry", "AWS_KEY": "key", "AWS_SECRET": "secret", "LOGLEVEL": "debug", "DEBUG":"True", "AWS_DEBUG":"true", "AWS_REGION":"eu-west-1"

and this is what I get when I try to push. First it uploads a few files (also on S3) but then it stops and won't do anything anymore:

$ docker push registry/box 511136ea3c5a: Pushing [==================================================>] 1.536 kB/1.536 kB $ docker push registry/box Sending image list 2015/04/07 18:09:04

The docker log says the following: 07/Apr/2015:18:09:04 +0000 DEBUG: Final headers: {'Date': 'Tue, 07 Apr 2015 16:09:04 GMT', 'Content-Length': '0', 'Authorization': u'XXXX', 'User-Agent': 'Boto/2.34.0 Python/2.7.6 Linux/3.13.0-44-generic'} 2015-04-07 18:09:04,159 ERROR: Exception on /v1/repositories/box/ [PUT] Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app response = self.full_dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1477, in full_dispatch_request rv = self.handle_user_exception(e) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1381, in handle_user_exception reraise(exc_type, exc_value, tb) File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1475, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1461, in dispatch_request return self.view_functionsrule.endpoint File "/usr/local/lib/python2.7/dist-packages/docker_registry/toolkit.py", line 306, in wrapper return f(namespace=namespace, repository=repository, _args, _kwargs) File "/usr/local/lib/python2.7/dist-packages/docker_registry/toolkit.py", line 280, in wrapper return f(_args, _kwargs) File "/usr/local/lib/python2.7/dist-packages/docker_registry/index.py", line 98, in put_repository update_index_images(namespace, repository, flask.request.data) File "/usr/local/lib/python2.7/dist-packages/docker_registry/index.py", line 60, in update_index_images data = json.loads(data_arg.decode('utf8')) + store.get_json(path) File "/usr/local/lib/python2.7/dist-packages/docker_registry/core/driver.py", line 185, in get_json return json.loads(self.get_unicode(path)) File "/usr/local/lib/python2.7/dist-packages/docker_registry/core/driver.py", line 191, in get_unicode return self.get_bytes(path).decode('utf8') File "/usr/local/lib/python2.7/dist-packages/docker_registry/core/driver.py", line 197, in get_bytes return self.get_content(path) File "/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py", line 165, in get_content return super(Storage, self).get_content(path) File "/usr/local/lib/python2.7/dist-packages/docker_registry/core/boto.py", line 220, in get_content if not key.exists(): File "/usr/local/lib/python2.7/dist-packages/boto/s3/key.py", line 537, in exists return bool(self.bucket.lookup(self.name, headers=headers)) File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 142, in lookup return self.get_key(key_name, headers=headers) File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 192, in get_key key, resp = self._get_key_internal(key_name, headers, query_args_l) File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py", line 230, in _get_key_internal response.status, response.reason, '') S3ResponseError: S3ResponseError: 403 Forbidden

The time inside the box and on the host I already checked, both are okay but in the header above you can see the time looks weird.

I ran out of ideas, can anybody help me with that?

thanks, David

dmp42 commented 9 years ago

Hi,

What do you mean by "the time looks weird"?

hammi85 commented 9 years ago

I think I'm wrong. The timestamp says 18:09:04 CEST and the log entry is 16:09:04 but GMT so it should be fine.

hammi85 commented 9 years ago

Solution: I just restarted with the configuration of everything and now it works. So I guess it was a mistake in my S3 policy.