{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker-registry/issues/928","labels_url":"https://api.github.com/repos/docker/docker-registry/issues/928/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker-registry/issues/928/comments","events_url":"https://api.github.com/repos/docker/docker-registry/issues/928/events","html_url":"https://github.com/docker/docker-registry/issues/928","id":57127739,"number":928,"title":"using s3 storage failed...","user":{"login":"stream1984","id":273171,"avatar_url":"https://avatars.githubusercontent.com/u/273171?v=3","gravatar_id":"","url":"https://api.github.com/users/stream1984","html_url":"https://github.com/stream1984","followers_url":"https://api.github.com/users/stream1984/followers","following_url":"https://api.github.com/users/stream1984/following{/other_user}","gists_url":"https://api.github.com/users/stream1984/gists{/gist_id}","starred_url":"https://api.github.com/users/stream1984/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stream1984/subscriptions","organizations_url":"https://api.github.com/users/stream1984/orgs","repos_url":"https://api.github.com/users/stream1984/repos","events_url":"https://api.github.com/users/stream1984/events{/privacy}","received_events_url":"https://api.github.com/users/stream1984/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-10T03:59:00Z","updated_at":"2015-02-10T04:02:44Z","closed_at":null,"body":"Hi all\r\n\r\ni try to use registry with s3 storage, follow the example of \r\ndocker run \\\r\n         -e SETTINGS_FLAVOR=s3 \\\r\n         -e AWS_BUCKET=/mybucket \\\r\n         -e STORAGE_PATH=/registry \\\r\n         -e AWS_KEY=**** \\\r\n         -e AWS_SECRET=*** \\\r\n         -e SEARCH_BACKEND=sqlalchemy \\\r\n         -p 5000:5000 \\\r\n         registry\r\n\r\ni have make sure that could connect to the s3 with aws s3 cli, but always get error below.\r\n\r\n\r\n[2015-02-10 03:45:16 +0000] [1] [INFO] Starting gunicorn 19.1.1\r\n[2015-02-10 03:45:16 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)\r\n[2015-02-10 03:45:16 +0000] [1] [INFO] Using worker: gevent\r\n[2015-02-10 03:45:16 +0000] [13] [INFO] Booting worker with pid: 13\r\n[2015-02-10 03:45:16 +0000] [14] [INFO] Booting worker with pid: 14\r\n[2015-02-10 03:45:16 +0000] [15] [INFO] Booting worker with pid: 15\r\n[2015-02-10 03:45:16 +0000] [16] [INFO] Booting worker with pid: 16\r\n10/Feb/2015:03:45:17 +0000 WARNING: Cache storage disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: LRU cache disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: Cache storage disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: LRU cache disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: Cache storage disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: LRU cache disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: Cache storage disabled!\r\n10/Feb/2015:03:45:17 +0000 WARNING: LRU cache disabled!\r\n[2015-02-10 03:45:52 +0000] [14] [ERROR] Exception in worker process:\r\nTraceback (most recent call last):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 507, in spawn_worker\r\n    worker.init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py\", line 193, in init_process\r\n    super(GeventWorker, self).init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py\", line 114, in init_process\r\n    self.wsgi = self.app.wsgi()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 66, in wsgi\r\n    self.callable = self.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 65, in load\r\n    return self.load_wsgiapp()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 52, in load_wsgiapp\r\n    return util.import_app(self.app_uri)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/util.py\", line 356, in import_app\r\n    __import__(module)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/wsgi.py\", line 20, in <module>\r\n    from .tags import *  # noqa\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/tags.py\", line 22, in <module>\r\n    store = storage.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/storage/__init__.py\", line 38, in load\r\n    config=cfg)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py\", line 72, in __init__\r\n    super(Storage, self).__init__(path, config)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/core/boto.py\", line 134, in __init__\r\n    self._config.boto_bucket)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 502, in get_bucket\r\n    return self.head_bucket(bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 521, in head_bucket\r\n    response = self.make_request('HEAD', bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 664, in make_request\r\n    retry_handler=retry_handler\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 1068, in make_request\r\n    retry_handler=retry_handler)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 942, in _mexe\r\n    request.body, request.headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 973, in request\r\n    self._send_request(method, url, body, headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1007, in _send_request\r\n    self.endheaders(body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 969, in endheaders\r\n    self._send_output(message_body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 829, in _send_output\r\n    self.send(msg)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 791, in send\r\n    self.connect()\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1172, in connect\r\n    self.timeout, self.source_address)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 570, in create_connection\r\n    for res in getaddrinfo(host, port, 0 if has_ipv6 else AF_INET, SOCK_STREAM):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 621, in getaddrinfo\r\n    return get_hub().resolver.getaddrinfo(host, port, family, socktype, proto, flags)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/resolver_thread.py\", line 34, in getaddrinfo\r\n    return self.pool.apply_e(self.expected_errors, _socket.getaddrinfo, args, kwargs)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/threadpool.py\", line 225, in apply_e\r\n    raise result\r\ngaierror: [Errno -2] Name or service not known\r\nTraceback (most recent call last):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 507, in spawn_worker\r\n    worker.init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py\", line 193, in init_process\r\n    super(GeventWorker, self).init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py\", line 114, in init_process\r\n    self.wsgi = self.app.wsgi()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 66, in wsgi\r\n    self.callable = self.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 65, in load\r\n    return self.load_wsgiapp()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 52, in load_wsgiapp\r\n    return util.import_app(self.app_uri)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/util.py\", line 356, in import_app\r\n    __import__(module)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/wsgi.py\", line 20, in <module>\r\n    from .tags import *  # noqa\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/tags.py\", line 22, in <module>\r\n    store = storage.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/storage/__init__.py\", line 38, in load\r\n    config=cfg)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py\", line 72, in __init__\r\n    super(Storage, self).__init__(path, config)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/core/boto.py\", line 134, in __init__\r\n    self._config.boto_bucket)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 502, in get_bucket\r\n    return self.head_bucket(bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 521, in head_bucket\r\n    response = self.make_request('HEAD', bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 664, in make_request\r\n    retry_handler=retry_handler\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 1068, in make_request\r\n    retry_handler=retry_handler)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 942, in _mexe\r\n    request.body, request.headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 973, in request\r\n    self._send_request(method, url, body, headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1007, in _send_request\r\n    self.endheaders(body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 969, in endheaders\r\n    self._send_output(message_body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 829, in _send_output\r\n    self.send(msg)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 791, in send\r\n    self.connect()\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1172, in connect\r\n    self.timeout, self.source_address)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 570, in create_connection\r\n    for res in getaddrinfo(host, port, 0 if has_ipv6 else AF_INET, SOCK_STREAM):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 621, in getaddrinfo\r\n    return get_hub().resolver.getaddrinfo(host, port, family, socktype, proto, flags)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/resolver_thread.py\", line 34, in getaddrinfo\r\n    return self.pool.apply_e(self.expected_errors, _socket.getaddrinfo, args, kwargs)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/threadpool.py\", line 225, in apply_e\r\n    raise result\r\ngaierror: [Errno -2] Name or service not known\r\n[2015-02-10 03:45:52 +0000] [14] [INFO] Worker exiting (pid: 14)\r\n[2015-02-10 03:46:18 +0000] [15] [ERROR] Exception in worker process:\r\nTraceback (most recent call last):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 507, in spawn_worker\r\n    worker.init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py\", line 193, in init_process\r\n    super(GeventWorker, self).init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py\", line 114, in init_process\r\n    self.wsgi = self.app.wsgi()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 66, in wsgi\r\n    self.callable = self.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 65, in load\r\n    return self.load_wsgiapp()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 52, in load_wsgiapp\r\n    return util.import_app(self.app_uri)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/util.py\", line 356, in import_app\r\n    __import__(module)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/wsgi.py\", line 20, in <module>\r\n    from .tags import *  # noqa\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/tags.py\", line 22, in <module>\r\n    store = storage.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/storage/__init__.py\", line 38, in load\r\n    config=cfg)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py\", line 72, in __init__\r\n    super(Storage, self).__init__(path, config)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/core/boto.py\", line 134, in __init__\r\n    self._config.boto_bucket)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 502, in get_bucket\r\n    return self.head_bucket(bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 521, in head_bucket\r\n    response = self.make_request('HEAD', bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 664, in make_request\r\n    retry_handler=retry_handler\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 1068, in make_request\r\n    retry_handler=retry_handler)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 942, in _mexe\r\n    request.body, request.headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 973, in request\r\n    self._send_request(method, url, body, headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1007, in _send_request\r\n    self.endheaders(body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 969, in endheaders\r\n    self._send_output(message_body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 829, in _send_output\r\n    self.send(msg)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 791, in send\r\n    self.connect()\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1172, in connect\r\n    self.timeout, self.source_address)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 570, in create_connection\r\n    for res in getaddrinfo(host, port, 0 if has_ipv6 else AF_INET, SOCK_STREAM):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 621, in getaddrinfo\r\n    return get_hub().resolver.getaddrinfo(host, port, family, socktype, proto, flags)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/resolver_thread.py\", line 34, in getaddrinfo\r\n    return self.pool.apply_e(self.expected_errors, _socket.getaddrinfo, args, kwargs)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/threadpool.py\", line 225, in apply_e\r\n    raise result\r\ngaierror: [Errno -2] Name or service not known\r\nTraceback (most recent call last):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 507, in spawn_worker\r\n    worker.init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/ggevent.py\", line 193, in init_process\r\n    super(GeventWorker, self).init_process()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py\", line 114, in init_process\r\n    self.wsgi = self.app.wsgi()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 66, in wsgi\r\n    self.callable = self.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 65, in load\r\n    return self.load_wsgiapp()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 52, in load_wsgiapp\r\n    return util.import_app(self.app_uri)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/util.py\", line 356, in import_app\r\n    __import__(module)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/wsgi.py\", line 20, in <module>\r\n    from .tags import *  # noqa\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/tags.py\", line 22, in <module>\r\n    store = storage.load()\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/storage/__init__.py\", line 38, in load\r\n    config=cfg)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py\", line 72, in __init__\r\n    super(Storage, self).__init__(path, config)\r\n  File \"/usr/local/lib/python2.7/dist-packages/docker_registry/core/boto.py\", line 134, in __init__\r\n    self._config.boto_bucket)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 502, in get_bucket\r\n    return self.head_bucket(bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 521, in head_bucket\r\n    response = self.make_request('HEAD', bucket_name, headers=headers)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/s3/connection.py\", line 664, in make_request\r\n    retry_handler=retry_handler\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 1068, in make_request\r\n    retry_handler=retry_handler)\r\n  File \"/usr/local/lib/python2.7/dist-packages/boto/connection.py\", line 942, in _mexe\r\n    request.body, request.headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 973, in request\r\n    self._send_request(method, url, body, headers)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1007, in _send_request\r\n    self.endheaders(body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 969, in endheaders\r\n    self._send_output(message_body)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 829, in _send_output\r\n    self.send(msg)\r\n  File \"/usr/lib/python2.7/httplib.py\", line 791, in send\r\n    self.connect()\r\n  File \"/usr/lib/python2.7/httplib.py\", line 1172, in connect\r\n    self.timeout, self.source_address)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 570, in create_connection\r\n    for res in getaddrinfo(host, port, 0 if has_ipv6 else AF_INET, SOCK_STREAM):\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/socket.py\", line 621, in getaddrinfo\r\n    return get_hub().resolver.getaddrinfo(host, port, family, socktype, proto, flags)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/resolver_thread.py\", line 34, in getaddrinfo\r\n    return self.pool.apply_e(self.expected_errors, _socket.getaddrinfo, args, kwargs)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gevent/threadpool.py\", line 225, in apply_e\r\n    raise result\r\ngaierror: [Errno -2] Name or service not known\r\n[2015-02-10 03:46:18 +0000] [15] [INFO] Worker exiting (pid: 15)\r\nTraceback (most recent call last):\r\n  File \"/usr/local/bin/gunicorn\", line 11, in <module>\r\n    sys.exit(run())\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py\", line 74, in run\r\n    WSGIApplication(\"%(prog)s [OPTIONS] [APP_MODULE]\").run()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 185, in run\r\n    super(Application, self).run()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py\", line 71, in run\r\n    Arbiter(self).run()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 196, in run\r\n    self.halt(reason=inst.reason, exit_status=inst.exit_status)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 292, in halt\r\n    self.stop()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 343, in stop\r\n    time.sleep(0.1)\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 209, in handle_chld\r\n    self.reap_workers()\r\n  File \"/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py\", line 459, in reap_workers\r\n    raise HaltServer(reason, self.WORKER_BOOT_ERROR)\r\ngunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>"},"comment":{"url":"https://api.github.com/repos/docker/docker-registry/issues/comments/73640949","html_url":"https://github.com/docker/docker-registry/issues/928#issuecomment-73640949","issue_url":"https://api.github.com/repos/docker/docker-registry/issues/928","id":73640949,"user":{"login":"stream1984","id":273171,"avatar_url":"https://avatars.githubusercontent.com/u/273171?v=3","gravatar_id":"","url":"https://api.github.com/users/stream1984","html_url":"https://github.com/stream1984","followers_url":"https://api.github.com/users/stream1984/followers","following_url":"https://api.github.com/users/stream1984/following{/other_user}","gists_url":"https://api.github.com/users/stream1984/gists{/gist_id}","starred_url":"https://api.github.com/users/stream1984/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stream1984/subscriptions","organizations_url":"https://api.github.com/users/stream1984/orgs","repos_url":"https://api.github.com/users/stream1984/repos","events_url":"https://api.github.com/users/stream1984/events{/privacy}","received_events_url":"https://api.github.com/users/stream1984/received_events","type":"User","site_admin":false},"created_at":"2015-02-10T04:02:44Z","updated_at":"2015-02-10T04:02:44Z","body":"i have found problem that bucket name can not include slash\r\nmybucket instead of /mybucket \r\n"}}